@yadsh/dsh-qa-surface 0.16.0 → 0.18.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/README.md +34 -5
- package/compatibility.json +1 -1
- package/lib/account-remotes.js +13 -0
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/database.js +120 -4
- package/lib/accounts/database.js.map +1 -1
- package/lib/accounts/file.js.map +1 -1
- package/lib/accounts/store.js +131 -5
- package/lib/accounts/store.js.map +1 -1
- package/lib/accounts/token.js +8 -2
- package/lib/accounts/token.js.map +1 -1
- package/lib/admin/metrics.js +15 -2
- package/lib/admin/metrics.js.map +1 -1
- package/lib/admin/read-budget.js +28 -0
- package/lib/admin/read-budget.js.map +1 -0
- package/lib/admin/service.js +135 -40
- package/lib/admin/service.js.map +1 -1
- package/lib/admin/session-log.js +63 -4
- package/lib/admin/session-log.js.map +1 -1
- package/lib/chat-sharing/native-fence.js +31 -2
- package/lib/chat-sharing/native-fence.js.map +1 -1
- package/lib/chat-sharing/store.js +9 -3
- package/lib/chat-sharing/store.js.map +1 -1
- package/lib/chat-sharing/transport.js +74 -13
- package/lib/chat-sharing/transport.js.map +1 -1
- package/lib/chat-sharing/uploads.js +79 -6
- package/lib/chat-sharing/uploads.js.map +1 -1
- package/lib/cli.js +13 -0
- package/lib/cli.js.map +1 -1
- package/lib/client/QaAccountsController.js +79 -0
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaRouteController.js +3 -1
- package/lib/client/QaRouteController.js.map +1 -1
- package/lib/client/QaSessionController.js +102 -29
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +89 -19
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +15 -2
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/account-sessions.js +74 -8
- package/lib/client/account-sessions.js.map +1 -1
- package/lib/client/admin/CapabilityPicker.js +50 -0
- package/lib/client/admin/CapabilityPicker.js.map +1 -0
- package/lib/client/admin/CoverageNotice.js +9 -0
- package/lib/client/admin/CoverageNotice.js.map +1 -0
- package/lib/client/admin/QaAdmin.js +3 -150
- package/lib/client/admin/QaAdmin.js.map +1 -1
- package/lib/client/admin/RoleEditor.js +46 -0
- package/lib/client/admin/RoleEditor.js.map +1 -0
- package/lib/client/admin/capability-selection.js +63 -0
- package/lib/client/admin/capability-selection.js.map +1 -0
- package/lib/client/admin/pages/Conversations.js +35 -17
- package/lib/client/admin/pages/Conversations.js.map +1 -1
- package/lib/client/admin/pages/Overview.js +3 -2
- package/lib/client/admin/pages/Overview.js.map +1 -1
- package/lib/client/admin/pages/Quality.js +77 -20
- package/lib/client/admin/pages/Quality.js.map +1 -1
- package/lib/client/admin/pages/SkillFiles.js +14 -3
- package/lib/client/admin/pages/SkillFiles.js.map +1 -1
- package/lib/client/admin/shared.js +68 -3
- package/lib/client/admin/shared.js.map +1 -1
- package/lib/client/answer-review.js +89 -0
- package/lib/client/answer-review.js.map +1 -0
- package/lib/client/chat-artifacts.js +1 -0
- package/lib/client/chat-artifacts.js.map +1 -1
- package/lib/client/components/QaAnswerReviewStatus.js +45 -0
- package/lib/client/components/QaAnswerReviewStatus.js.map +1 -0
- package/lib/client/components/QaAuthGate.js +31 -28
- package/lib/client/components/QaAuthGate.js.map +1 -1
- package/lib/client/components/QaChangelog.js +79 -0
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaChatActions.js +52 -0
- package/lib/client/components/QaChatActions.js.map +1 -0
- package/lib/client/components/QaChatSharing.js +22 -19
- package/lib/client/components/QaChatSharing.js.map +1 -1
- package/lib/client/components/QaComposer.js +27 -4
- package/lib/client/components/QaComposer.js.map +1 -1
- package/lib/client/components/QaFormItem.js +63 -0
- package/lib/client/components/QaFormItem.js.map +1 -0
- package/lib/client/components/QaInputForm.js +281 -0
- package/lib/client/components/QaInputForm.js.map +1 -0
- package/lib/client/components/QaMarkdownPreview.js +86 -0
- package/lib/client/components/QaMarkdownPreview.js.map +1 -0
- package/lib/client/components/QaMessage.js +8 -2
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/components/QaModal.js +34 -4
- package/lib/client/components/QaModal.js.map +1 -1
- package/lib/client/components/QaRightRail.js +6 -4
- package/lib/client/components/QaRightRail.js.map +1 -1
- package/lib/client/components/QaRightRailResize.js +129 -0
- package/lib/client/components/QaRightRailResize.js.map +1 -0
- package/lib/client/components/QaSidebar.js +10 -1
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/components/QaSourceFilters.js +22 -0
- package/lib/client/components/QaSourceFilters.js.map +1 -0
- package/lib/client/components/QaSourcesPanel.js +57 -13
- package/lib/client/components/QaSourcesPanel.js.map +1 -1
- package/lib/client/components/QaSpreadsheetPreview.js +56 -0
- package/lib/client/components/QaSpreadsheetPreview.js.map +1 -0
- package/lib/client/components/QaWelcomeNotice.js +2 -2
- package/lib/client/components/QaWelcomeNotice.js.map +1 -1
- package/lib/client/components/QaWorkspaceBrowser.js +22 -9
- package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
- package/lib/client/components/QaZoomImage.js +56 -0
- package/lib/client/components/QaZoomImage.js.map +1 -0
- package/lib/client/components/source-refs.js +18 -4
- package/lib/client/components/source-refs.js.map +1 -1
- package/lib/client/forms-styles.js +14 -0
- package/lib/client/forms-styles.js.map +1 -0
- package/lib/client/forms.js +40 -0
- package/lib/client/forms.js.map +1 -0
- package/lib/client/index.js +31 -3
- package/lib/client/index.js.map +1 -1
- package/lib/client/markdown/SourceImage.js +52 -0
- package/lib/client/markdown/SourceImage.js.map +1 -0
- package/lib/client/markdown/blocks.js +150 -115
- package/lib/client/markdown/blocks.js.map +1 -1
- package/lib/client/markdown/render.js +23 -5
- package/lib/client/markdown/render.js.map +1 -1
- package/lib/client/markdown/source-chip.js +2 -1
- package/lib/client/markdown/source-chip.js.map +1 -1
- package/lib/client/oidc-browser.js +39 -0
- package/lib/client/oidc-browser.js.map +1 -0
- package/lib/client/panels/PanelHost.js +23 -1
- package/lib/client/panels/PanelHost.js.map +1 -1
- package/lib/client/settings/sections/interface.js +2 -1
- package/lib/client/settings/sections/interface.js.map +1 -1
- package/lib/client/settings/sections/sources.js +1 -1
- package/lib/client/settings/sections/sources.js.map +1 -1
- package/lib/client/settings/sections/status.js +3 -1
- package/lib/client/settings/sections/status.js.map +1 -1
- package/lib/client/settings/styles.js +18 -28
- package/lib/client/settings/styles.js.map +1 -1
- package/lib/client/source-filters-styles.js +11 -0
- package/lib/client/source-filters-styles.js.map +1 -0
- package/lib/client/styles.js +56 -5
- package/lib/client/styles.js.map +1 -1
- package/lib/client/types.js.map +1 -1
- package/lib/client/use-right-rail.js +1 -1
- package/lib/client/use-right-rail.js.map +1 -1
- package/lib/client/user-settings/IntegrationTokensPage.js +30 -6
- package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
- package/lib/client.js +540 -71128
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/accounts.js +5 -4
- package/lib/config-resolvers/accounts.js.map +1 -1
- package/lib/config-resolvers/defaults.js +20 -3
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/oidc.js +53 -0
- package/lib/config-resolvers/oidc.js.map +1 -0
- package/lib/config-resolvers/sources.js +2 -0
- package/lib/config-resolvers/sources.js.map +1 -1
- package/lib/config.js +74 -0
- package/lib/config.js.map +1 -1
- package/lib/forms/attachments.js +214 -0
- package/lib/forms/attachments.js.map +1 -0
- package/lib/forms/errors.js +37 -0
- package/lib/forms/errors.js.map +1 -0
- package/lib/forms/fingerprint.js +21 -0
- package/lib/forms/fingerprint.js.map +1 -0
- package/lib/forms/gate.js +125 -0
- package/lib/forms/gate.js.map +1 -0
- package/lib/forms/schema.js +182 -0
- package/lib/forms/schema.js.map +1 -0
- package/lib/forms/service.js +220 -0
- package/lib/forms/service.js.map +1 -0
- package/lib/forms/store.js +194 -0
- package/lib/forms/store.js.map +1 -0
- package/lib/forms/types.js +2 -0
- package/lib/forms/types.js.map +1 -0
- package/lib/forms/validation.js +113 -0
- package/lib/forms/validation.js.map +1 -0
- package/lib/index.js +276 -5
- package/lib/index.js.map +1 -1
- package/lib/integration/host-runner.js +1 -0
- package/lib/integration/host-runner.js.map +1 -1
- package/lib/integration/question-policy.js +126 -0
- package/lib/integration/question-policy.js.map +1 -0
- package/lib/integration/service.js +2 -0
- package/lib/integration/service.js.map +1 -1
- package/lib/llm-identity.js +27 -0
- package/lib/llm-identity.js.map +1 -0
- package/lib/markdown-frontmatter.js +47 -0
- package/lib/markdown-frontmatter.js.map +1 -0
- package/lib/markdown-images.js +33 -0
- package/lib/markdown-images.js.map +1 -0
- package/lib/oidc/http.js +30 -0
- package/lib/oidc/http.js.map +1 -0
- package/lib/oidc/service.js +250 -0
- package/lib/oidc/service.js.map +1 -0
- package/lib/prompt-notes.js +1 -1
- package/lib/prompt-notes.js.map +1 -1
- package/lib/provenance/collector.js +2 -0
- package/lib/provenance/collector.js.map +1 -1
- package/lib/provenance/connectors.js +25 -19
- package/lib/provenance/connectors.js.map +1 -1
- package/lib/provenance/dedupe.js +17 -0
- package/lib/provenance/dedupe.js.map +1 -1
- package/lib/provenance/document-preview.js +12 -2
- package/lib/provenance/document-preview.js.map +1 -1
- package/lib/provenance/extractors.js +23 -5
- package/lib/provenance/extractors.js.map +1 -1
- package/lib/provenance/file-preview.js +9 -2
- package/lib/provenance/file-preview.js.map +1 -1
- package/lib/provenance/integration-extractor.js +5 -6
- package/lib/provenance/integration-extractor.js.map +1 -1
- package/lib/provenance/snapshot-store.js +2 -0
- package/lib/provenance/snapshot-store.js.map +1 -1
- package/lib/provenance/source-content.js +103 -0
- package/lib/provenance/source-content.js.map +1 -0
- package/lib/provenance/source-image.js +57 -0
- package/lib/provenance/source-image.js.map +1 -0
- package/lib/provenance/spreadsheet-preview.js +52 -0
- package/lib/provenance/spreadsheet-preview.js.map +1 -0
- package/lib/qa-tools/activation-manager.js +24 -2
- package/lib/qa-tools/activation-manager.js.map +1 -1
- package/lib/qa-tools/catalog.js +11 -1
- package/lib/qa-tools/catalog.js.map +1 -1
- package/lib/qa-tools/index.js +27 -0
- package/lib/qa-tools/index.js.map +1 -1
- package/lib/qa-tools/request-user-form.js +121 -0
- package/lib/qa-tools/request-user-form.js.map +1 -0
- package/lib/questions.js +6 -1
- package/lib/questions.js.map +1 -1
- package/lib/resolve-config.js +2 -0
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +14 -8
- package/lib/secure-session.js.map +1 -1
- package/lib/shared/documents.js +12 -0
- package/lib/shared/documents.js.map +1 -1
- package/lib/typert.host.js +5136 -1341
- package/lib/typert.remote-client.d.ts +141 -7
- package/lib/typert.remote-client.js +5896 -2255
- package/lib/types/account-remotes.d.ts +3 -0
- package/lib/types/accounts/database.d.ts +13 -0
- package/lib/types/accounts/file.d.ts +2 -0
- package/lib/types/accounts/store.d.ts +23 -1
- package/lib/types/accounts/token.d.ts +3 -1
- package/lib/types/admin/metrics.d.ts +5 -1
- package/lib/types/admin/read-budget.d.ts +8 -0
- package/lib/types/admin/service.d.ts +17 -0
- package/lib/types/admin/session-log.d.ts +30 -1
- package/lib/types/answer-review.js +2 -0
- package/lib/types/answer-review.js.map +1 -0
- package/lib/types/chat-sharing/store.d.ts +1 -0
- package/lib/types/chat-sharing/transport.d.ts +1 -0
- package/lib/types/chat-sharing/uploads.d.ts +2 -1
- package/lib/types/client/QaAccountsController.d.ts +5 -0
- package/lib/types/client/QaRouteController.d.ts +1 -0
- package/lib/types/client/QaSessionController.d.ts +12 -3
- package/lib/types/client/QaSurface.d.ts +2 -0
- package/lib/types/client/admin/CapabilityPicker.d.ts +14 -0
- package/lib/types/client/admin/CoverageNotice.d.ts +6 -0
- package/lib/types/client/admin/RoleEditor.d.ts +15 -0
- package/lib/types/client/admin/capability-selection.d.ts +27 -0
- package/lib/types/client/admin/shared.d.ts +39 -1
- package/lib/types/client/answer-review.d.ts +16 -0
- package/lib/types/client/components/QaAnswerReviewStatus.d.ts +8 -0
- package/lib/types/client/components/QaAuthGate.d.ts +2 -0
- package/lib/types/client/components/QaChatActions.d.ts +7 -0
- package/lib/types/client/components/QaChatSharing.d.ts +4 -2
- package/lib/types/client/components/QaFormItem.d.ts +20 -0
- package/lib/types/client/components/QaInputForm.d.ts +18 -0
- package/lib/types/client/components/QaMarkdownPreview.d.ts +13 -0
- package/lib/types/client/components/QaModal.d.ts +9 -0
- package/lib/types/client/components/QaRightRail.d.ts +3 -2
- package/lib/types/client/components/QaRightRailResize.d.ts +9 -0
- package/lib/types/client/components/QaSidebar.d.ts +2 -0
- package/lib/types/client/components/QaSourceFilters.d.ts +12 -0
- package/lib/types/client/components/QaSpreadsheetPreview.d.ts +8 -0
- package/lib/types/client/components/QaWelcomeNotice.d.ts +1 -1
- package/lib/types/client/components/QaZoomImage.d.ts +38 -0
- package/lib/types/client/forms-styles.d.ts +2 -0
- package/lib/types/client/forms.d.ts +23 -0
- package/lib/types/client/markdown/SourceImage.d.ts +7 -0
- package/lib/types/client/markdown/blocks.d.ts +8 -1
- package/lib/types/client/markdown/render.d.ts +5 -1
- package/lib/types/client/markdown/source-chip.d.ts +1 -0
- package/lib/types/client/oidc-browser.d.ts +12 -0
- package/lib/types/client/settings/styles.d.ts +2 -5
- package/lib/types/client/source-filters-styles.d.ts +2 -0
- package/lib/types/client/types.d.ts +18 -6
- package/lib/types/config-resolvers/oidc.d.ts +3 -0
- package/lib/types/forms/attachments.d.ts +48 -0
- package/lib/types/forms/errors.d.ts +11 -0
- package/lib/types/forms/fingerprint.d.ts +9 -0
- package/lib/types/forms/gate.d.ts +33 -0
- package/lib/types/forms/schema.d.ts +72 -0
- package/lib/types/forms/service.d.ts +15 -0
- package/lib/types/forms/store.d.ts +25 -0
- package/lib/types/forms/types.d.ts +215 -0
- package/lib/types/forms/validation.d.ts +20 -0
- package/lib/types/index.d.ts +36 -3
- package/lib/types/integration/contract.d.ts +1 -0
- package/lib/types/integration/question-policy.d.ts +20 -0
- package/lib/types/integration/service.d.ts +1 -0
- package/lib/types/llm-identity.d.ts +20 -0
- package/lib/types/markdown-frontmatter.d.ts +10 -0
- package/lib/types/markdown-images.d.ts +3 -0
- package/lib/types/oidc/http.d.ts +5 -0
- package/lib/types/oidc/service.d.ts +30 -0
- package/lib/types/oidc.js +2 -0
- package/lib/types/oidc.js.map +1 -0
- package/lib/types/prompt-notes.d.ts +1 -1
- package/lib/types/provenance/document-preview.d.ts +3 -2
- package/lib/types/provenance/file-preview.d.ts +2 -1
- package/lib/types/provenance/source-content.d.ts +19 -0
- package/lib/types/provenance/source-image.d.ts +4 -0
- package/lib/types/provenance/spreadsheet-preview.d.ts +5 -0
- package/lib/types/provenance/types.d.ts +3 -0
- package/lib/types/qa-tools/activation-manager.d.ts +5 -0
- package/lib/types/qa-tools/catalog.d.ts +4 -1
- package/lib/types/qa-tools/index.d.ts +5 -1
- package/lib/types/qa-tools/request-user-form.d.ts +5 -0
- package/lib/types/questions.d.ts +2 -1
- package/lib/types/secure-session.d.ts +1 -0
- package/lib/types/shared/documents.d.ts +2 -0
- package/lib/types/types/accounts.d.ts +7 -1
- package/lib/types/types/admin.d.ts +6 -0
- package/lib/types/types/answer-review.d.ts +11 -0
- package/lib/types/types/config.d.ts +9 -0
- package/lib/types/types/oidc.d.ts +36 -0
- package/lib/types/types/session.d.ts +18 -3
- package/lib/types/types.d.ts +3 -0
- package/package.json +58 -56
|
@@ -15,6 +15,23 @@ const openDialogs = [];
|
|
|
15
15
|
export function isQaModalOpen() {
|
|
16
16
|
return openDialogs.length > 0;
|
|
17
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Join the stack from a shell that draws its own chrome rather than this
|
|
20
|
+
* panel — the image lightbox is such a shell. One Escape press then closes the
|
|
21
|
+
* innermost layer instead of every dialog under it.
|
|
22
|
+
*/
|
|
23
|
+
export function joinQaDialogStack() {
|
|
24
|
+
const token = Symbol("dsh-qa-modal");
|
|
25
|
+
openDialogs.push(token);
|
|
26
|
+
return {
|
|
27
|
+
innermost: () => openDialogs.at(-1) === token,
|
|
28
|
+
leave: () => {
|
|
29
|
+
const index = openDialogs.indexOf(token);
|
|
30
|
+
if (index >= 0)
|
|
31
|
+
openDialogs.splice(index, 1);
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
18
35
|
/**
|
|
19
36
|
* The shared QA dialog shell: backdrop, panel, head with the close control,
|
|
20
37
|
* a scrolling body, and an optional footer. Escape and a backdrop click close
|
|
@@ -23,6 +40,10 @@ export function isQaModalOpen() {
|
|
|
23
40
|
*/
|
|
24
41
|
export function QaModal(props) {
|
|
25
42
|
const closeButton = useRef(null);
|
|
43
|
+
const onClose = useRef(props.onClose);
|
|
44
|
+
useEffect(() => {
|
|
45
|
+
onClose.current = props.onClose;
|
|
46
|
+
}, [props.onClose]);
|
|
26
47
|
useEffect(() => {
|
|
27
48
|
if (!props.open)
|
|
28
49
|
return;
|
|
@@ -34,16 +55,25 @@ export function QaModal(props) {
|
|
|
34
55
|
return;
|
|
35
56
|
if (openDialogs.at(-1) !== token)
|
|
36
57
|
return;
|
|
37
|
-
|
|
58
|
+
const target = event.target;
|
|
59
|
+
if (target instanceof Element &&
|
|
60
|
+
target.closest('[role="menu"], [role="listbox"], [role="combobox"][aria-expanded="true"]'))
|
|
61
|
+
return;
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
event.stopPropagation();
|
|
64
|
+
onClose.current();
|
|
38
65
|
};
|
|
39
|
-
|
|
66
|
+
// Host tooltips can consume Escape during document capture. The top QA
|
|
67
|
+
// dialog owns it before that handler, including when its close button
|
|
68
|
+
// currently carries a Host tooltip.
|
|
69
|
+
window.addEventListener("keydown", onKey, true);
|
|
40
70
|
return () => {
|
|
41
|
-
window.removeEventListener("keydown", onKey);
|
|
71
|
+
window.removeEventListener("keydown", onKey, true);
|
|
42
72
|
const index = openDialogs.indexOf(token);
|
|
43
73
|
if (index >= 0)
|
|
44
74
|
openDialogs.splice(index, 1);
|
|
45
75
|
};
|
|
46
|
-
}, [props.open
|
|
76
|
+
}, [props.open]);
|
|
47
77
|
if (!props.open)
|
|
48
78
|
return null;
|
|
49
79
|
return (_jsx("div", { className: "dsh-qa-modal", "data-testid": "qa-surface-modal", role: "dialog", "aria-modal": "true", "aria-label": props.title, onClick: (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QaModal.js","sourceRoot":"","sources":["../../../src/client/components/QaModal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAC;AAE1D;;;;GAIG;AACH,MAAM,WAAW,GAAa,EAAE,CAAC;AAEjC;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;AAChC,CAAC;AAsBD;;;;;GAKG;AACH,MAAM,UAAU,OAAO,CAAC,KAAmB;IACzC,MAAM,WAAW,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAC;IACpD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,KAAK,CAAC,IAAI;YAAE,OAAO;QACxB,WAAW,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;QACrC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAE,EAAE;YACrC,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ;gBAAE,OAAO;YACnC,IAAI,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK;gBAAE,OAAO;YACzC,KAAK,CAAC,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"QaModal.js","sourceRoot":"","sources":["../../../src/client/components/QaModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { useEffect } from "react";
|
|
2
|
+
import { useEffect, useRef } from "react";
|
|
3
3
|
import { isQaModalOpen } from "./QaModal.js";
|
|
4
|
+
import { QaRightRailResize } from "./QaRightRailResize.js";
|
|
4
5
|
/**
|
|
5
|
-
* The chat's right rail: a
|
|
6
|
+
* The chat's right rail: a resizable column whose top edge is the tab strip,
|
|
6
7
|
* mirroring the Harness right Sidebar's chrome. Tabs are plain chips with
|
|
7
8
|
* counts; the strip's last control collapses the whole column.
|
|
8
9
|
*
|
|
@@ -12,7 +13,8 @@ import { isQaModalOpen } from "./QaModal.js";
|
|
|
12
13
|
* the rail keeps the key: the innermost thing on the page is what the reader
|
|
13
14
|
* means to dismiss.
|
|
14
15
|
*/
|
|
15
|
-
export function QaRightRail({ tabs, activeTab, onTabSelect, onClose, }) {
|
|
16
|
+
export function QaRightRail({ tabs, activeTab, onTabSelect, onClose, stateKey = "dsh-qa", }) {
|
|
17
|
+
const root = useRef(null);
|
|
16
18
|
const active = tabs.find((tab) => tab.id === activeTab) ?? tabs[0];
|
|
17
19
|
useEffect(() => {
|
|
18
20
|
const onKey = (event) => {
|
|
@@ -27,7 +29,7 @@ export function QaRightRail({ tabs, activeTab, onTabSelect, onClose, }) {
|
|
|
27
29
|
}, [onClose]);
|
|
28
30
|
if (active === undefined)
|
|
29
31
|
return null;
|
|
30
|
-
return (_jsxs("aside", { className: "dsh-qa-panel", "data-testid": "qa-surface-rail", "aria-label": "\u0421\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E \u0447\u0430\u0442\u0435", children: [_jsxs("div", { className: "dsh-qa-panel__strip", "data-testid": "qa-surface-rail-tabs", role: "tablist", "aria-label": "\u0412\u043A\u043B\u0430\u0434\u043A\u0438 \u043F\u0430\u043D\u0435\u043B\u0438", children: [tabs.map((tab) => (_jsxs("button", { type: "button", role: "tab", "data-testid": `qa-surface-rail-tab-${tab.id}`, "aria-selected": tab.id === active.id, className: tab.id === active.id
|
|
32
|
+
return (_jsxs("aside", { ref: root, className: "dsh-qa-panel", "data-testid": "qa-surface-rail", "aria-label": "\u0421\u0432\u0435\u0434\u0435\u043D\u0438\u044F \u043E \u0447\u0430\u0442\u0435", children: [_jsx(QaRightRailResize, { root: root, storage: window.localStorage, storageKey: `${stateKey}:right-panel-width` }), _jsxs("div", { className: "dsh-qa-panel__strip", "data-testid": "qa-surface-rail-tabs", role: "tablist", "aria-label": "\u0412\u043A\u043B\u0430\u0434\u043A\u0438 \u043F\u0430\u043D\u0435\u043B\u0438", children: [tabs.map((tab) => (_jsxs("button", { type: "button", role: "tab", "data-testid": `qa-surface-rail-tab-${tab.id}`, "aria-selected": tab.id === active.id, className: tab.id === active.id
|
|
31
33
|
? "dsh-qa-panel__tab dsh-qa-panel__tab--active"
|
|
32
34
|
: "dsh-qa-panel__tab", onClick: () => onTabSelect(tab.id), children: [tab.title, tab.count > 0 ? (_jsx("span", { "data-testid": `qa-surface-rail-tab-${tab.id}-count`, children: tab.count })) : null] }, tab.id))), _jsx("button", { type: "button", className: "dsh-qa-panel__close", "data-testid": "qa-surface-rail-close", "aria-label": `Закрыть панель «${active.title}» и вернуться к чату`, title: `Закрыть панель «${active.title}»`, onClick: onClose, children: _jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx("path", { d: "m4 4 8 8m0-8-8 8" }) }) })] }), _jsx("div", { className: "dsh-qa-panel__body", "data-testid": "qa-surface-rail-body", role: "tabpanel", "aria-label": active.title, children: active.body })] }));
|
|
33
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QaRightRail.js","sourceRoot":"","sources":["../../../src/client/components/QaRightRail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"QaRightRail.js","sourceRoot":"","sources":["../../../src/client/components/QaRightRail.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAkB,MAAM,OAAO,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAmB3D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,SAAS,EACT,WAAW,EACX,OAAO,EACP,QAAQ,GAAG,QAAQ,GACF;IACjB,MAAM,IAAI,GAAG,MAAM,CAAc,IAAI,CAAC,CAAC;IACvC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,SAAS,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACnE,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAAG,CAAC,KAAoB,EAAQ,EAAE;YAC3C,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,IAAI,KAAK,CAAC,gBAAgB;gBAAE,OAAO;YAC7D,IAAI,aAAa,EAAE;gBAAE,OAAO;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAC1C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IACd,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACtC,OAAO,CACL,iBACE,GAAG,EAAE,IAAI,EACT,SAAS,EAAC,cAAc,iBACZ,iBAAiB,gBAClB,kFAAiB,aAE5B,KAAC,iBAAiB,IAChB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,MAAM,CAAC,YAAY,EAC5B,UAAU,EAAE,GAAG,QAAQ,oBAAoB,GAC3C,EACF,eACE,SAAS,EAAC,qBAAqB,iBACnB,sBAAsB,EAClC,IAAI,EAAC,SAAS,gBACH,iFAAgB,aAE1B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CACjB,kBAEE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,KAAK,iBACG,uBAAuB,GAAG,CAAC,EAAE,EAAE,mBAC7B,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EACnC,SAAS,EACP,GAAG,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE;4BAClB,CAAC,CAAC,6CAA6C;4BAC/C,CAAC,CAAC,mBAAmB,EAEzB,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC,aAEjC,GAAG,CAAC,KAAK,EACT,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CACf,8BAAmB,uBAAuB,GAAG,CAAC,EAAE,QAAQ,YACrD,GAAG,CAAC,KAAK,GACL,CACR,CAAC,CAAC,CAAC,IAAI,KAjBH,GAAG,CAAC,EAAE,CAkBJ,CACV,CAAC,EACF,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qBAAqB,iBACnB,uBAAuB,gBACvB,mBAAmB,MAAM,CAAC,KAAK,sBAAsB,EACjE,KAAK,EAAE,mBAAmB,MAAM,CAAC,KAAK,GAAG,EACzC,OAAO,EAAE,OAAO,YAEhB,cAAK,OAAO,EAAC,WAAW,iBAAa,MAAM,YACzC,eAAM,CAAC,EAAC,kBAAkB,GAAG,GACzB,GACC,IACL,EACN,cACE,SAAS,EAAC,oBAAoB,iBAClB,sBAAsB,EAClC,IAAI,EAAC,UAAU,gBACH,MAAM,CAAC,KAAK,YAEvB,MAAM,CAAC,IAAI,GACR,IACA,CACT,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useCallback, useEffect, useLayoutEffect, useRef, useState, } from "react";
|
|
3
|
+
import { readQaStoredWidth, writeQaStoredWidth } from "./QaWidthHandle.js";
|
|
4
|
+
const MIN_WIDTH = 280;
|
|
5
|
+
const MAX_WIDTH = 720;
|
|
6
|
+
const DEFAULT_WIDTH = 360;
|
|
7
|
+
const CHAT_MIN_WIDTH = 320;
|
|
8
|
+
export function resolveQaRightRailWidth(requested, available) {
|
|
9
|
+
const maximum = Math.min(MAX_WIDTH, Math.max(MIN_WIDTH, available - CHAT_MIN_WIDTH));
|
|
10
|
+
return Math.round(Math.max(MIN_WIDTH, Math.min(requested ?? DEFAULT_WIDTH, maximum)));
|
|
11
|
+
}
|
|
12
|
+
/** A one-sided border drag: moving left widens the panel on the right. */
|
|
13
|
+
export function QaRightRailResize(props) {
|
|
14
|
+
const [width, setWidth] = useState(DEFAULT_WIDTH);
|
|
15
|
+
const [maximum, setMaximum] = useState(MAX_WIDTH);
|
|
16
|
+
const [dragging, setDragging] = useState(false);
|
|
17
|
+
const liveDrag = useRef(false);
|
|
18
|
+
const origin = useRef(0);
|
|
19
|
+
const base = useRef(DEFAULT_WIDTH);
|
|
20
|
+
const latest = useRef(DEFAULT_WIDTH);
|
|
21
|
+
const frame = useRef(null);
|
|
22
|
+
const handle = useRef(null);
|
|
23
|
+
const panel = useCallback(() => props.root.current ?? handle.current?.parentElement, [props.root]);
|
|
24
|
+
const preference = useRef(readQaStoredWidth(props.storage, props.storageKey));
|
|
25
|
+
const available = useCallback(() => {
|
|
26
|
+
const parent = panel()?.parentElement;
|
|
27
|
+
if (!parent || parent.clientWidth === 0)
|
|
28
|
+
return MAX_WIDTH + CHAT_MIN_WIDTH;
|
|
29
|
+
const occupied = [...parent.children]
|
|
30
|
+
.filter((el) => el.matches(".dsh-qa-sidebar,.dsh-qa-agents"))
|
|
31
|
+
.reduce((sum, el) => sum + el.offsetWidth, 0);
|
|
32
|
+
return parent.clientWidth - occupied;
|
|
33
|
+
}, [panel]);
|
|
34
|
+
const publish = useCallback(() => {
|
|
35
|
+
if (liveDrag.current)
|
|
36
|
+
return;
|
|
37
|
+
const space = available();
|
|
38
|
+
const resolved = resolveQaRightRailWidth(preference.current, space);
|
|
39
|
+
panel()?.style.setProperty("--dsh-qa-panel-width", `${resolved}px`);
|
|
40
|
+
setWidth(resolved);
|
|
41
|
+
handle.current?.setAttribute("aria-valuenow", String(resolved));
|
|
42
|
+
setMaximum(resolveQaRightRailWidth(MAX_WIDTH, space));
|
|
43
|
+
}, [available, panel]);
|
|
44
|
+
useLayoutEffect(() => {
|
|
45
|
+
preference.current = readQaStoredWidth(props.storage, props.storageKey);
|
|
46
|
+
publish();
|
|
47
|
+
const parent = panel()?.parentElement;
|
|
48
|
+
if (!parent)
|
|
49
|
+
return;
|
|
50
|
+
if (typeof ResizeObserver === "undefined") {
|
|
51
|
+
window.addEventListener("resize", publish);
|
|
52
|
+
return () => window.removeEventListener("resize", publish);
|
|
53
|
+
}
|
|
54
|
+
const observer = new ResizeObserver(publish);
|
|
55
|
+
observer.observe(parent);
|
|
56
|
+
for (const child of parent.children)
|
|
57
|
+
if (child.matches(".dsh-qa-sidebar,.dsh-qa-body"))
|
|
58
|
+
observer.observe(child);
|
|
59
|
+
return () => observer.disconnect();
|
|
60
|
+
}, [panel, props.storage, props.storageKey, publish]);
|
|
61
|
+
const cancelFrame = useCallback(() => {
|
|
62
|
+
if (frame.current === null)
|
|
63
|
+
return;
|
|
64
|
+
cancelAnimationFrame(frame.current);
|
|
65
|
+
frame.current = null;
|
|
66
|
+
}, []);
|
|
67
|
+
useEffect(() => cancelFrame, [cancelFrame]);
|
|
68
|
+
const preview = (requested) => {
|
|
69
|
+
const resolved = resolveQaRightRailWidth(requested, available());
|
|
70
|
+
panel()?.style.setProperty("--dsh-qa-panel-width", `${resolved}px`);
|
|
71
|
+
handle.current?.setAttribute("aria-valuenow", String(resolved));
|
|
72
|
+
return resolved;
|
|
73
|
+
};
|
|
74
|
+
const commit = (requested) => {
|
|
75
|
+
preference.current = preview(requested);
|
|
76
|
+
writeQaStoredWidth(props.storage, props.storageKey, preference.current);
|
|
77
|
+
liveDrag.current = false;
|
|
78
|
+
setDragging(false);
|
|
79
|
+
publish();
|
|
80
|
+
};
|
|
81
|
+
const cancel = () => {
|
|
82
|
+
cancelFrame();
|
|
83
|
+
liveDrag.current = false;
|
|
84
|
+
setDragging(false);
|
|
85
|
+
publish();
|
|
86
|
+
};
|
|
87
|
+
return (_jsx("div", { ref: handle, className: "dsh-qa-panel__resize", "data-testid": "qa-surface-rail-resize", "data-dragging": dragging || undefined, role: "separator", tabIndex: 0, "aria-label": "\u0428\u0438\u0440\u0438\u043D\u0430 \u043F\u0440\u0430\u0432\u043E\u0439 \u043F\u0430\u043D\u0435\u043B\u0438", "aria-orientation": "vertical", "aria-valuemin": MIN_WIDTH, "aria-valuemax": maximum, "aria-valuenow": width, title: "\u041F\u043E\u0442\u044F\u043D\u0438\u0442\u0435 \u0433\u0440\u0430\u043D\u0438\u0446\u0443, \u0447\u0442\u043E\u0431\u044B \u0438\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u0448\u0438\u0440\u0438\u043D\u0443 \u043F\u0430\u043D\u0435\u043B\u0438", onPointerDown: (event) => {
|
|
88
|
+
if (event.button !== 0)
|
|
89
|
+
return;
|
|
90
|
+
event.preventDefault();
|
|
91
|
+
event.currentTarget.focus();
|
|
92
|
+
event.currentTarget.setPointerCapture(event.pointerId);
|
|
93
|
+
base.current = panel()?.getBoundingClientRect().width || width;
|
|
94
|
+
origin.current = event.clientX;
|
|
95
|
+
latest.current = base.current;
|
|
96
|
+
liveDrag.current = true;
|
|
97
|
+
setDragging(true);
|
|
98
|
+
}, onPointerMove: (event) => {
|
|
99
|
+
if (!event.currentTarget.hasPointerCapture(event.pointerId))
|
|
100
|
+
return;
|
|
101
|
+
latest.current = base.current + origin.current - event.clientX;
|
|
102
|
+
frame.current ??= requestAnimationFrame(() => {
|
|
103
|
+
frame.current = null;
|
|
104
|
+
preview(latest.current);
|
|
105
|
+
});
|
|
106
|
+
}, onPointerUp: (event) => {
|
|
107
|
+
if (!event.currentTarget.hasPointerCapture(event.pointerId))
|
|
108
|
+
return;
|
|
109
|
+
cancelFrame();
|
|
110
|
+
commit(base.current + origin.current - event.clientX);
|
|
111
|
+
event.currentTarget.releasePointerCapture(event.pointerId);
|
|
112
|
+
}, onPointerCancel: cancel, onLostPointerCapture: cancel, onKeyDown: (event) => {
|
|
113
|
+
const step = event.shiftKey ? 40 : 16;
|
|
114
|
+
const requested = event.key === "ArrowLeft"
|
|
115
|
+
? width + step
|
|
116
|
+
: event.key === "ArrowRight"
|
|
117
|
+
? width - step
|
|
118
|
+
: event.key === "Home"
|
|
119
|
+
? MIN_WIDTH
|
|
120
|
+
: event.key === "End"
|
|
121
|
+
? maximum
|
|
122
|
+
: null;
|
|
123
|
+
if (requested === null)
|
|
124
|
+
return;
|
|
125
|
+
event.preventDefault();
|
|
126
|
+
commit(requested);
|
|
127
|
+
} }));
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=QaRightRailResize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QaRightRailResize.js","sourceRoot":"","sources":["../../../src/client/components/QaRightRailResize.tsx"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ import { auditMark } from "../audit/types.js";
|
|
|
6
6
|
import { QaSettingsButton } from "../user-settings/fields.js";
|
|
7
7
|
import { QA_VERSION, QaChangelogModal } from "./QaChangelog.js";
|
|
8
8
|
import { QaModal } from "./QaModal.js";
|
|
9
|
+
import { QaChatActions } from "./QaChatActions.js";
|
|
9
10
|
import { relativeTime } from "./format.js";
|
|
10
11
|
import { QaSidebarHandle, useQaSidebarWidth } from "./QaWidthHandle.js";
|
|
11
12
|
/**
|
|
@@ -226,7 +227,14 @@ export const QaSidebar = memo(function QaSidebar(props) {
|
|
|
226
227
|
if (mark === null)
|
|
227
228
|
return null;
|
|
228
229
|
return (_jsx(QaAuditRowBadge, { mark: mark, withDelete: props.onDelete !== undefined, onOpen: () => props.onAudit?.(row.id) }));
|
|
229
|
-
})(), props.
|
|
230
|
+
})(), row.shareable && props.onShare !== undefined ? (_jsx(QaChatActions, { name: name, onShare: () => props.onShare?.(row.id), ...(props.onDelete === undefined
|
|
231
|
+
? {}
|
|
232
|
+
: {
|
|
233
|
+
onDelete: (trigger) => {
|
|
234
|
+
deleteTrigger.current = trigger;
|
|
235
|
+
setConfirmingId(row.id);
|
|
236
|
+
},
|
|
237
|
+
}) })) : props.onDelete === undefined ? null : (_jsx("button", { type: "button", className: "dsh-qa-sidebar__item-delete", "data-testid": "qa-surface-sidebar-item-delete", "aria-label": `Удалить чат ${name}`, title: `Удалить чат ${name}`, onClick: (event) => {
|
|
230
238
|
deleteTrigger.current = event.currentTarget;
|
|
231
239
|
setConfirmingId(row.id);
|
|
232
240
|
}, children: _jsx("svg", { viewBox: "0 0 16 16", "aria-hidden": "true", children: _jsx("path", { d: "M2.5 4h11M6.5 4V2.5h3V4m-6.2 0 .6 9.5h7.2L12 4" }) }) }))] }, row.id));
|
|
@@ -279,6 +287,7 @@ export const QaSidebar = memo(function QaSidebar(props) {
|
|
|
279
287
|
prev.onSwitch === next.onSwitch &&
|
|
280
288
|
prev.onNewChat === next.onNewChat &&
|
|
281
289
|
prev.onDelete === next.onDelete &&
|
|
290
|
+
prev.onShare === next.onShare &&
|
|
282
291
|
prev.onAudit === next.onAudit &&
|
|
283
292
|
prev.audits === next.audits &&
|
|
284
293
|
prev.account?.email === next.account?.email &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QaSidebar.js","sourceRoot":"","sources":["../../../src/client/components/QaSidebar.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"QaSidebar.js","sourceRoot":"","sources":["../../../src/client/components/QaSidebar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { KIND_LABELS } from "./source-icon.js";
|
|
3
|
+
export function matchesSourceText(source, query) {
|
|
4
|
+
const words = query.trim().toLocaleLowerCase().split(/\s+/u).filter(Boolean);
|
|
5
|
+
const text = [
|
|
6
|
+
source.title,
|
|
7
|
+
source.uri,
|
|
8
|
+
source.path,
|
|
9
|
+
source.snippet,
|
|
10
|
+
source.content,
|
|
11
|
+
]
|
|
12
|
+
.filter(Boolean)
|
|
13
|
+
.join("\n")
|
|
14
|
+
.toLocaleLowerCase();
|
|
15
|
+
return words.every((word) => text.includes(word));
|
|
16
|
+
}
|
|
17
|
+
export function QaSourceFilters({ sources, query, kind, count, onQuery, onKind, onReset, }) {
|
|
18
|
+
return (_jsxs("div", { className: "dsh-qa-sourcefilters", "data-testid": "qa-source-filters", children: [_jsx("input", { type: "search", "aria-label": "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u0438\u043B\u0438 \u0441\u0441\u044B\u043B\u043A\u0435", placeholder: "\u041F\u043E\u0438\u0441\u043A \u043F\u043E \u0442\u0435\u043A\u0441\u0442\u0443 \u0438\u043B\u0438 \u0441\u0441\u044B\u043B\u043A\u0435", value: query, onChange: (event) => onQuery(event.target.value) }), _jsxs("select", { "aria-label": "\u0422\u0438\u043F \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430", value: kind, onChange: (event) => onKind(event.target.value), children: [_jsxs("option", { value: "all", children: ["\u0412\u0441\u0435 \u0442\u0438\u043F\u044B (", sources.length, ")"] }), Object.entries(KIND_LABELS)
|
|
19
|
+
.filter(([key]) => sources.some((source) => source.kind === key) || kind === key)
|
|
20
|
+
.map(([key, label]) => (_jsxs("option", { value: key, children: [label, " (", sources.filter((source) => source.kind === key).length, ")"] }, key)))] }), _jsxs("span", { className: "dsh-qa-sourcefilters__count", role: "status", children: ["\u041D\u0430\u0439\u0434\u0435\u043D\u043E ", count, " \u0438\u0437 ", sources.length] }), query !== "" || kind !== "all" ? (_jsx("button", { type: "button", onClick: onReset, children: "\u0421\u0431\u0440\u043E\u0441\u0438\u0442\u044C \u0444\u0438\u043B\u044C\u0442\u0440\u044B" })) : null] }));
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=QaSourceFilters.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"QaSourceFilters.js","sourceRoot":"","sources":["../../../src/client/components/QaSourceFilters.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,MAAM,UAAU,iBAAiB,CAAC,MAAgB,EAAE,KAAa;IAC/D,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,iBAAiB,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC7E,MAAM,IAAI,GAAG;QACX,MAAM,CAAC,KAAK;QACZ,MAAM,CAAC,GAAG;QACV,MAAM,CAAC,IAAI;QACX,MAAM,CAAC,OAAO;QACd,MAAM,CAAC,OAAO;KACf;SACE,MAAM,CAAC,OAAO,CAAC;SACf,IAAI,CAAC,IAAI,CAAC;SACV,iBAAiB,EAAE,CAAC;IACvB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAC9B,OAAO,EACP,KAAK,EACL,IAAI,EACJ,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,GASR;IACC,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,iBAAa,mBAAmB,aACnE,gBACE,IAAI,EAAC,QAAQ,gBACF,0IAA4B,EACvC,WAAW,EAAC,0IAA4B,EACxC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAChD,EACF,gCACa,2EAAe,EAC1B,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAoB,CAAC,aAE9D,kBAAQ,KAAK,EAAC,KAAK,8DAAY,OAAO,CAAC,MAAM,SAAW,EACvD,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;yBACzB,MAAM,CACL,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CACR,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,IAAI,KAAK,GAAG,CAChE;yBACA,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrB,kBAAkB,KAAK,EAAE,GAAG,aACzB,KAAK,QAAI,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,MAAM,UADrD,GAAG,CAEP,CACV,CAAC,IACG,EACT,gBAAM,SAAS,EAAC,6BAA6B,EAAC,IAAI,EAAC,QAAQ,4DAChD,KAAK,oBAAM,OAAO,CAAC,MAAM,IAC7B,EACN,KAAK,KAAK,EAAE,IAAI,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,CAChC,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,4GAE7B,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import {
|
|
2
|
+
import { QaSpreadsheetPreview } from "./QaSpreadsheetPreview.js";
|
|
3
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
3
4
|
import { sourcePreviewFailureCopy } from "../source-preview.js";
|
|
4
|
-
import {
|
|
5
|
+
import { QaMarkdownPreview } from "./QaMarkdownPreview.js";
|
|
6
|
+
import { SourceImage } from "../markdown/SourceImage.js";
|
|
5
7
|
import { KIND_LABELS, SourceIcon } from "./source-icon.js";
|
|
6
8
|
import { usePdfUrl } from "./QaWorkspaceBrowser.js";
|
|
9
|
+
import { matchesSourceText, QaSourceFilters } from "./QaSourceFilters.js";
|
|
7
10
|
// Re-exported so the panel stays the icon's historical import site.
|
|
8
11
|
export { SourceIcon } from "./source-icon.js";
|
|
9
12
|
function sourceTarget(source) {
|
|
@@ -21,15 +24,15 @@ function OriginBadges({ source, showOrigin, }) {
|
|
|
21
24
|
return (_jsxs("span", { className: "dsh-qa-sources__badges", "data-testid": "qa-source-badges", children: [delegated ? (_jsx("span", { "data-testid": "qa-source-badge-subagent", children: "Subagent" })) : null, truncated ? (_jsx("span", { "data-testid": "qa-source-badge-partial", children: "Partial" })) : null, metadataOnly ? (_jsx("span", { "data-testid": "qa-source-badge-metadata", children: "Metadata only" })) : null, source.evidence === "discovered" ? (_jsx("span", { "data-testid": "qa-source-badge-discovered", children: "Discovered" })) : null] }));
|
|
22
25
|
}
|
|
23
26
|
function QaSourceCard({ source, showOriginBadges, onOpen, }) {
|
|
24
|
-
return (_jsxs("button", { type: "button", className: "dsh-qa-sources__item", "data-testid": "qa-sources-item", onClick: onOpen, children: [_jsx("span", { className: "dsh-qa-sources__kind", "data-kind": source.kind, "data-testid": "qa-sources-item-icon", children: _jsx(SourceIcon, { kind: source.kind }) }), _jsxs("span", { className: "dsh-qa-sources__text", "data-testid": "qa-sources-item-text", children: [_jsx("span", { className: "dsh-qa-sources__title", "data-testid": "qa-sources-item-title", children: source.title }), _jsx("span", { className: "dsh-qa-sources__target", "data-testid": "qa-sources-item-target", children: sourceTarget(source) }), _jsx(OriginBadges, { source: source, showOrigin: showOriginBadges }), source.snippet === undefined ? null : (_jsx("p", { "data-testid": "qa-sources-item-snippet", children: source.snippet }))] })] }));
|
|
27
|
+
return (_jsxs("button", { type: "button", className: "dsh-qa-sources__item", "data-testid": "qa-sources-item", onClick: onOpen, children: [_jsx("span", { className: "dsh-qa-sources__kind", "data-kind": source.kind, "data-testid": "qa-sources-item-icon", children: _jsx(SourceIcon, { kind: source.kind }) }), _jsxs("span", { className: "dsh-qa-sources__text", "data-testid": "qa-sources-item-text", children: [_jsx("span", { className: "dsh-qa-sources__title", "data-testid": "qa-sources-item-title", children: source.title }), _jsx("span", { className: "dsh-qa-sources__target", "data-testid": "qa-sources-item-target", children: sourceTarget(source) }), _jsx(OriginBadges, { source: source, showOrigin: showOriginBadges }), source.snippet === undefined && source.content === undefined ? null : (_jsx("p", { "data-testid": "qa-sources-item-snippet", children: source.snippet ?? source.content?.slice(0, 240) }))] })] }));
|
|
25
28
|
}
|
|
26
|
-
function RawFilePreview({ preview, lineStart, lineEnd, }) {
|
|
29
|
+
function RawFilePreview({ preview, lineStart, lineEnd, requestKey, }) {
|
|
27
30
|
const target = useRef(null);
|
|
28
31
|
useEffect(() => {
|
|
29
32
|
if (typeof target.current?.scrollIntoView === "function") {
|
|
30
33
|
target.current.scrollIntoView({ block: "center" });
|
|
31
34
|
}
|
|
32
|
-
}, [preview.path, lineStart]);
|
|
35
|
+
}, [preview.path, lineStart, lineEnd, requestKey]);
|
|
33
36
|
const lines = preview.content.replace(/\r\n?/gu, "\n").split("\n");
|
|
34
37
|
return (_jsx("pre", { className: "dsh-qa-preview__raw", "data-testid": "qa-source-preview-raw", children: _jsx("code", { children: lines.map((line, index) => {
|
|
35
38
|
const number = index + 1;
|
|
@@ -47,7 +50,23 @@ function QaSourceDetail({ source, sessionId, sourceApi, filePreviewConfig, showO
|
|
|
47
50
|
const [preview, setPreview] = useState(null);
|
|
48
51
|
const [previewError, setPreviewError] = useState(null);
|
|
49
52
|
const [mode, setMode] = useState("raw");
|
|
50
|
-
const
|
|
53
|
+
const imageCache = useMemo(() => new Map(), [sessionId, source.path, sourceApi]);
|
|
54
|
+
const loadImage = useCallback((imagePath) => {
|
|
55
|
+
const cached = imageCache.get(imagePath);
|
|
56
|
+
if (cached !== undefined)
|
|
57
|
+
return cached;
|
|
58
|
+
if (sessionId === null ||
|
|
59
|
+
source.path === undefined ||
|
|
60
|
+
sourceApi.readSourceImage === undefined)
|
|
61
|
+
return Promise.resolve(undefined);
|
|
62
|
+
const result = sourceApi
|
|
63
|
+
.readSourceImage(sessionId, source.path, imagePath)
|
|
64
|
+
.then((value) => (value.ok ? value.value : undefined));
|
|
65
|
+
imageCache.set(imagePath, result);
|
|
66
|
+
return result;
|
|
67
|
+
}, [imageCache, sessionId, source.path, sourceApi]);
|
|
68
|
+
const renderImage = useCallback((src, alt) => (_jsx(SourceImage, { src: src, alt: alt, load: loadImage })), [loadImage]);
|
|
69
|
+
const pdfUrl = usePdfUrl(preview?.document?.kind === "pdf" ? preview.document.base64 : undefined);
|
|
51
70
|
const external = source.uri?.match(/^https?:\/\//iu)?.[0] === undefined
|
|
52
71
|
? undefined
|
|
53
72
|
: source.uri;
|
|
@@ -82,6 +101,7 @@ function QaSourceDetail({ source, sessionId, sourceApi, filePreviewConfig, showO
|
|
|
82
101
|
}, [
|
|
83
102
|
filePreviewConfig.enabled,
|
|
84
103
|
filePreviewConfig.markdownRenderedByDefault,
|
|
104
|
+
filePreviewConfig.renderFrontmatter,
|
|
85
105
|
sessionId,
|
|
86
106
|
source.id,
|
|
87
107
|
source.path,
|
|
@@ -89,7 +109,16 @@ function QaSourceDetail({ source, sessionId, sourceApi, filePreviewConfig, showO
|
|
|
89
109
|
]);
|
|
90
110
|
return (_jsxs("div", { className: "dsh-qa-sourcedetail", "data-testid": "qa-source-detail", children: [_jsxs("div", { className: "dsh-qa-sourcedetail__head", "data-testid": "qa-source-detail-head", children: [_jsx("button", { type: "button", className: "dsh-qa-sourcedetail__back", "data-testid": "qa-source-detail-back", "aria-label": "\u041A\u043E \u0432\u0441\u0435\u043C \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u043C", title: "\u041A\u043E \u0432\u0441\u0435\u043C \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0430\u043C", onClick: onBack, children: _jsx("svg", { viewBox: "0 0 14 14", "aria-hidden": "true", children: _jsx("path", { d: "m8.75 3.5-3.5 3.5 3.5 3.5" }) }) }), _jsx("span", { className: "dsh-qa-sourcedetail__kind", "data-testid": "qa-source-detail-icon", children: _jsx(SourceIcon, { kind: source.kind }) }), _jsx("span", { className: "dsh-qa-sourcedetail__title", "data-testid": "qa-source-detail-title", children: source.title }), preview?.markdown && filePreviewConfig.allowRawToggle ? (_jsxs("span", { className: "dsh-qa-preview__toggle", "data-testid": "qa-source-preview-toggle", children: [_jsx("button", { type: "button", "data-testid": "qa-source-preview-toggle-rendered", "aria-pressed": mode === "rendered", disabled: !preview.renderableMarkdown, onClick: () => setMode("rendered"), children: "Rendered" }), _jsx("button", { type: "button", "data-testid": "qa-source-preview-toggle-raw", "aria-pressed": mode === "raw", onClick: () => setMode("raw"), children: "Raw" })] })) : external === undefined ? null : (_jsx("a", { className: "dsh-qa-sourcedetail__open", "data-testid": "qa-source-detail-open", href: external, target: "_blank", rel: "noopener noreferrer", children: "\u041E\u0442\u043A\u0440\u044B\u0442\u044C" }))] }), _jsx("div", { className: "dsh-qa-sourcedetail__target", "data-testid": "qa-source-detail-target", children: sourceTarget(source) }), _jsxs("div", { className: "dsh-qa-sourcedetail__body", "data-testid": "qa-source-detail-body", children: [_jsx(OriginBadges, { source: source, showOrigin: showOriginBadges }), source.path !== undefined && preview === null && !previewError ? (_jsx("p", { className: "dsh-qa-sourcedetail__empty", "data-testid": "qa-source-detail-loading", children: "\u041E\u0442\u043A\u0440\u044B\u0432\u0430\u044E \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u2026" })) : null, previewError !== null ? (_jsx("p", { className: "dsh-qa-sourcedetail__empty", "data-testid": "qa-source-detail-error", children: previewError })) : null, preview !== null ? (_jsxs(_Fragment, { children: [preview.truncated ? (_jsx("p", { className: "dsh-qa-preview__notice", "data-testid": "qa-source-preview-truncated", children: "\u041F\u043E\u043A\u0430\u0437\u0430\u043D\u043E \u043D\u0430\u0447\u0430\u043B\u043E \u0444\u0430\u0439\u043B\u0430: \u0440\u0430\u0437\u043C\u0435\u0440 \u043F\u0440\u0435\u0432\u044B\u0448\u0430\u0435\u0442 \u043B\u0438\u043C\u0438\u0442 preview." })) : null, lineStart === undefined ? null : (_jsxs("p", { className: "dsh-qa-preview__range", "data-testid": "qa-source-preview-range", children: ["Referenced lines: ", lineStart, lineEnd !== undefined && lineEnd !== lineStart
|
|
91
111
|
? `–${lineEnd}`
|
|
92
|
-
: "", mode === "rendered" ? (_jsx("button", { type: "button", "data-testid": "qa-source-preview-show-raw", onClick: () => setMode("raw"), children: "View raw" })) : null] })), preview.document
|
|
112
|
+
: "", mode === "rendered" ? (_jsx("button", { type: "button", "data-testid": "qa-source-preview-show-raw", onClick: () => setMode("raw"), children: "View raw" })) : null] })), preview.document?.kind === "spreadsheet" ? (_jsx(QaSpreadsheetPreview, { initial: preview.document, load: async (selection) => {
|
|
113
|
+
if (source.path === undefined || sessionId === null)
|
|
114
|
+
throw new Error("unavailable");
|
|
115
|
+
const result = await sourceApi.readSourceFile(sessionId, source.path, selection);
|
|
116
|
+
if (!result.ok)
|
|
117
|
+
throw result.error;
|
|
118
|
+
if (result.value.document?.kind !== "spreadsheet")
|
|
119
|
+
throw new Error("unsupported");
|
|
120
|
+
return result.value.document;
|
|
121
|
+
} })) : preview.document !== undefined ? (pdfUrl === null ? (_jsx("p", { children: "\u0413\u043E\u0442\u043E\u0432\u043B\u044E \u043F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u2026" })) : (_jsx("iframe", { className: "dsh-qa-ws__pdf", "data-testid": "qa-source-preview-pdf", title: preview.document.name, src: pdfUrl }))) : mode === "rendered" && preview.renderableMarkdown ? (_jsx("div", { className: "dsh-qa-preview__markdown", "data-testid": "qa-source-preview-markdown", children: _jsx(QaMarkdownPreview, { text: preview.content, renderFrontmatter: filePreviewConfig.renderFrontmatter, frontmatter: preview.frontmatter, lineStart: lineStart, lineEnd: lineEnd, renderImage: renderImage, requestKey: source }) })) : (_jsx(RawFilePreview, { preview: preview, lineStart: lineStart, lineEnd: lineEnd, requestKey: source }))] })) : source.path === undefined ? (source.content !== undefined ? (_jsxs(_Fragment, { children: [_jsx("h3", { className: "dsh-qa-sourcedetail__content-label", children: "\u041F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044B\u0439 \u0442\u0435\u043A\u0441\u0442" }), source.contentTruncated === true ? (_jsx("p", { className: "dsh-qa-preview__notice", "data-testid": "qa-source-content-truncated", children: "\u0422\u0435\u043A\u0441\u0442 \u0441\u043E\u0445\u0440\u0430\u043D\u0451\u043D \u0447\u0430\u0441\u0442\u0438\u0447\u043D\u043E: \u043F\u043E\u043A\u0430\u0437\u0430\u043D \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439 \u0444\u0440\u0430\u0433\u043C\u0435\u043D\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u0430." })) : null, _jsx("p", { "data-testid": "qa-source-detail-content", children: source.content })] })) : source.snippet === undefined ? (_jsx("p", { className: "dsh-qa-sourcedetail__empty", "data-testid": "qa-source-detail-missing", children: source.metadata?.addressUnavailable === true
|
|
93
122
|
? "Интеграция вернула запись без ссылки. Предпросмотр недоступен."
|
|
94
123
|
: "У источника нет текстового фрагмента." })) : (_jsx("p", { "data-testid": "qa-source-detail-snippet", children: source.snippet }))) : null, _jsxs("p", { className: "dsh-qa-sourcedetail__provenance", "data-testid": "qa-source-detail-provenance", children: [_jsxs("span", { children: ["\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D ", source.origins.length, " \u0440\u0430\u0437(\u0430)"] }), _jsx("span", { children: source.evidence })] })] })] }));
|
|
95
124
|
}
|
|
@@ -97,23 +126,38 @@ function QaSourceDetail({ source, sessionId, sourceApi, filePreviewConfig, showO
|
|
|
97
126
|
export function QaSourcesPanel({ sources, complete, incompleteOrigins, sessionId, sourceApi, display, filePreview, initialDetail = null, pinned = false, onShowAll, }) {
|
|
98
127
|
const [detailId, setDetailId] = useState(initialDetail?.id ?? null);
|
|
99
128
|
const [expanded, setExpanded] = useState(() => new Set());
|
|
129
|
+
const [query, setQuery] = useState("");
|
|
130
|
+
const [kind, setKind] = useState("all");
|
|
131
|
+
const filtered = useMemo(() => sources.filter((source) => (kind === "all" || source.kind === kind) &&
|
|
132
|
+
matchesSourceText(source, query)), [sources, kind, query]);
|
|
133
|
+
const resetFilters = () => {
|
|
134
|
+
setQuery("");
|
|
135
|
+
setKind("all");
|
|
136
|
+
setExpanded(new Set());
|
|
137
|
+
};
|
|
100
138
|
const detail = detailId === null
|
|
101
139
|
? undefined
|
|
102
|
-
: (
|
|
103
|
-
(
|
|
140
|
+
: ((initialDetail?.id === detailId ? initialDetail : undefined) ??
|
|
141
|
+
sources.find((source) => source.id === detailId));
|
|
104
142
|
const groups = useMemo(() => {
|
|
105
143
|
if (!display.groupByKind)
|
|
106
|
-
return [{ key: "all", label: "Источники", sources }];
|
|
144
|
+
return [{ key: "all", label: "Источники", sources: filtered }];
|
|
107
145
|
const grouped = new Map();
|
|
108
|
-
for (const source of
|
|
146
|
+
for (const source of filtered)
|
|
109
147
|
grouped.set(source.kind, [...(grouped.get(source.kind) ?? []), source]);
|
|
110
148
|
return [...grouped].map(([key, items]) => ({
|
|
111
149
|
key,
|
|
112
150
|
label: KIND_LABELS[key],
|
|
113
151
|
sources: items,
|
|
114
152
|
}));
|
|
115
|
-
}, [display.groupByKind,
|
|
116
|
-
return (_jsxs("div", { className: "dsh-qa-sourcespanel", "data-testid": "qa-sources-panel", children: [detail === undefined &&
|
|
153
|
+
}, [display.groupByKind, filtered]);
|
|
154
|
+
return (_jsxs("div", { className: "dsh-qa-sourcespanel", "data-testid": "qa-sources-panel", children: [detail === undefined && sources.length > 0 ? (_jsx(QaSourceFilters, { sources: sources, query: query, kind: kind, count: filtered.length, onQuery: (value) => {
|
|
155
|
+
setQuery(value);
|
|
156
|
+
setExpanded(new Set());
|
|
157
|
+
}, onKind: (value) => {
|
|
158
|
+
setKind(value);
|
|
159
|
+
setExpanded(new Set());
|
|
160
|
+
}, onReset: resetFilters })) : null, detail === undefined && pinned && onShowAll !== undefined ? (_jsx("button", { type: "button", className: "dsh-qa-sourcespanel__all", "data-testid": "qa-sources-show-all", onClick: onShowAll, children: "\u0412\u0441\u0435 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u0438" })) : null, detail === undefined ? (_jsxs("div", { className: "dsh-qa-sources__list", "data-testid": "qa-sources-list", children: [sources.length > 0 && filtered.length === 0 ? (_jsx("p", { className: "dsh-qa-sources__empty", "data-testid": "qa-sources-no-matches", children: "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E. \u0418\u0437\u043C\u0435\u043D\u0438\u0442\u0435 \u0437\u0430\u043F\u0440\u043E\u0441 \u0438\u043B\u0438 \u0441\u0431\u0440\u043E\u0441\u044C\u0442\u0435 \u0444\u0438\u043B\u044C\u0442\u0440\u044B." })) : null, !complete ? (_jsxs("p", { className: "dsh-qa-sources__incomplete", "data-testid": "qa-sources-incomplete", children: ["\u0421\u0431\u043E\u0440 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432 \u043D\u0435\u043F\u043E\u043B\u043E\u043D: \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B (", incompleteOrigins?.length ?? 1, ")."] })) : null, complete && sources.length === 0 ? (_jsxs("p", { className: "dsh-qa-sources__empty", "data-testid": "qa-sources-empty", children: [pinned ? "Для этого ответа" : "В этом чате", " \u043F\u043E\u043A\u0430 \u043D\u0435\u0442 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u0445 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A\u043E\u0432. \u0417\u0434\u0435\u0441\u044C \u043F\u043E\u044F\u0432\u043B\u044F\u044E\u0442\u0441\u044F \u043F\u0440\u043E\u0447\u0438\u0442\u0430\u043D\u043D\u044B\u0435 \u0444\u0430\u0439\u043B\u044B, \u0432\u0435\u0431-\u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B \u0438 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u044B \u0438\u043D\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0439. \u041F\u0443\u0441\u0442\u043E\u0439 \u0441\u043F\u0438\u0441\u043E\u043A \u0441\u0430\u043C \u043F\u043E \u0441\u0435\u0431\u0435 \u043D\u0435 \u043F\u043E\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0430\u0435\u0442, \u0447\u0442\u043E \u043E\u0442\u0432\u0435\u0442 \u0441\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D \u043F\u043E \u043F\u0430\u043C\u044F\u0442\u0438."] })) : null, groups.map((group) => {
|
|
117
161
|
const visible = expanded.has(group.key)
|
|
118
162
|
? group.sources
|
|
119
163
|
: group.sources.slice(0, display.maxInitiallyVisiblePerGroup);
|