@yadsh/dsh-qa-surface 0.13.0 → 0.14.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 +148 -22
- package/compatibility.json +7 -3
- package/lib/access/capability-catalog.js +22 -6
- package/lib/access/capability-catalog.js.map +1 -1
- package/lib/access/model.js +36 -2
- package/lib/access/model.js.map +1 -1
- package/lib/access/service.js +19 -4
- package/lib/access/service.js.map +1 -1
- package/lib/account-remotes.js +4 -0
- package/lib/account-remotes.js.map +1 -1
- package/lib/accounts/database.js +49 -9
- package/lib/accounts/database.js.map +1 -1
- package/lib/accounts/errors.js.map +1 -1
- package/lib/accounts/file.js.map +1 -1
- package/lib/accounts/store.js +53 -8
- package/lib/accounts/store.js.map +1 -1
- package/lib/admin/permissions.js +6 -0
- package/lib/admin/permissions.js.map +1 -1
- package/lib/admin/quality-store.js +95 -19
- package/lib/admin/quality-store.js.map +1 -1
- package/lib/admin/service.js +178 -0
- package/lib/admin/service.js.map +1 -1
- package/lib/cli.js +24 -4
- package/lib/cli.js.map +1 -1
- package/lib/client/QaAccountsController.js +52 -5
- package/lib/client/QaAccountsController.js.map +1 -1
- package/lib/client/QaConfigController.js.map +1 -1
- package/lib/client/QaSessionController.js +626 -63
- package/lib/client/QaSessionController.js.map +1 -1
- package/lib/client/QaSurface.js +279 -43
- package/lib/client/QaSurface.js.map +1 -1
- package/lib/client/QaSurfaceGuard.js +2 -2
- package/lib/client/QaSurfaceGuard.js.map +1 -1
- package/lib/client/QaTranscriptAdapter.js +4 -2
- package/lib/client/QaTranscriptAdapter.js.map +1 -1
- package/lib/client/admin/QaAdmin.js +59 -34
- package/lib/client/admin/QaAdmin.js.map +1 -1
- package/lib/client/admin/pages/Conversations.js +12 -12
- package/lib/client/admin/pages/Conversations.js.map +1 -1
- package/lib/client/admin/pages/ExpertMemory.js +210 -0
- package/lib/client/admin/pages/ExpertMemory.js.map +1 -0
- package/lib/client/admin/pages/Overview.js +4 -4
- package/lib/client/admin/pages/Overview.js.map +1 -1
- package/lib/client/admin/pages/Quality.js +5 -5
- package/lib/client/admin/pages/Quality.js.map +1 -1
- package/lib/client/admin/pages/Review.js +5 -5
- package/lib/client/admin/pages/Review.js.map +1 -1
- package/lib/client/admin/pages/SkillFiles.js +3 -3
- package/lib/client/admin/pages/SkillFiles.js.map +1 -1
- package/lib/client/admin/pages/Users.js +12 -12
- package/lib/client/admin/pages/Users.js.map +1 -1
- package/lib/client/admin/routes.js +4 -0
- package/lib/client/admin/routes.js.map +1 -1
- package/lib/client/admin/shared.js +15 -6
- package/lib/client/admin/shared.js.map +1 -1
- package/lib/client/admin/styles.js +3 -0
- package/lib/client/admin/styles.js.map +1 -1
- package/lib/client/attestation.js +11 -2
- package/lib/client/attestation.js.map +1 -1
- package/lib/client/audit/QaAuditDialog.js +2 -2
- package/lib/client/audit/QaAuditDialog.js.map +1 -1
- package/lib/client/audit/QaAuditRowBadge.js +1 -1
- package/lib/client/audit/QaAuditRowBadge.js.map +1 -1
- package/lib/client/components/Markdown.js +7 -2
- package/lib/client/components/Markdown.js.map +1 -1
- package/lib/client/components/QaAgentsDrawer.js +7 -5
- package/lib/client/components/QaAgentsDrawer.js.map +1 -1
- package/lib/client/components/QaApproval.js +2 -2
- package/lib/client/components/QaApproval.js.map +1 -1
- package/lib/client/components/QaAuthGate.js +6 -6
- package/lib/client/components/QaAuthGate.js.map +1 -1
- package/lib/client/components/QaChangelog.js +64 -0
- package/lib/client/components/QaChangelog.js.map +1 -1
- package/lib/client/components/QaComposer.js +9 -6
- package/lib/client/components/QaComposer.js.map +1 -1
- package/lib/client/components/QaFileAttachment.js +1 -1
- package/lib/client/components/QaFileAttachment.js.map +1 -1
- package/lib/client/components/QaFilesPanel.js +7 -7
- package/lib/client/components/QaFilesPanel.js.map +1 -1
- package/lib/client/components/QaHeader.js +4 -4
- package/lib/client/components/QaHeader.js.map +1 -1
- package/lib/client/components/QaMessage.js +12 -12
- package/lib/client/components/QaMessage.js.map +1 -1
- package/lib/client/components/QaModal.js +11 -2
- package/lib/client/components/QaModal.js.map +1 -1
- package/lib/client/components/QaQuestions.js +4 -4
- package/lib/client/components/QaQuestions.js.map +1 -1
- package/lib/client/components/QaQueueDock.js +137 -0
- package/lib/client/components/QaQueueDock.js.map +1 -0
- package/lib/client/components/QaRequestQueue.js +22 -0
- package/lib/client/components/QaRequestQueue.js.map +1 -0
- package/lib/client/components/QaRightRail.js +2 -2
- package/lib/client/components/QaRightRail.js.map +1 -1
- package/lib/client/components/QaSidebar.js +66 -6
- package/lib/client/components/QaSidebar.js.map +1 -1
- package/lib/client/components/QaSourcesPanel.js +10 -8
- package/lib/client/components/QaSourcesPanel.js.map +1 -1
- package/lib/client/components/QaThemeSwitcher.js +19 -0
- package/lib/client/components/QaThemeSwitcher.js.map +1 -0
- package/lib/client/components/QaTurnNotice.js +40 -0
- package/lib/client/components/QaTurnNotice.js.map +1 -0
- package/lib/client/components/QaTurnRail.js +3 -3
- package/lib/client/components/QaTurnRail.js.map +1 -1
- package/lib/client/components/QaWelcomeNotice.js +2 -6
- package/lib/client/components/QaWelcomeNotice.js.map +1 -1
- package/lib/client/components/QaWidthHandle.js +2 -2
- package/lib/client/components/QaWidthHandle.js.map +1 -1
- package/lib/client/components/QaWorkGroup.js +5 -5
- package/lib/client/components/QaWorkGroup.js.map +1 -1
- package/lib/client/components/QaWorkspaceBrowser.js +10 -10
- package/lib/client/components/QaWorkspaceBrowser.js.map +1 -1
- package/lib/client/components/VariantSwitcher.js +1 -1
- package/lib/client/components/VariantSwitcher.js.map +1 -1
- package/lib/client/failure-copy.js +26 -8
- package/lib/client/failure-copy.js.map +1 -1
- package/lib/client/focus-ring.js +193 -0
- package/lib/client/focus-ring.js.map +1 -0
- package/lib/client/index.js +40 -20
- package/lib/client/index.js.map +1 -1
- package/lib/client/lineage.js +3 -16
- package/lib/client/lineage.js.map +1 -1
- package/lib/client/markdown/CodeBlock.js +2 -2
- package/lib/client/markdown/CodeBlock.js.map +1 -1
- package/lib/client/markdown/blocks.js +118 -31
- package/lib/client/markdown/blocks.js.map +1 -1
- package/lib/client/markdown/math.js +1 -1
- package/lib/client/markdown/math.js.map +1 -1
- package/lib/client/markdown/render.js +32 -16
- package/lib/client/markdown/render.js.map +1 -1
- package/lib/client/markdown/source-chip.js +3 -3
- package/lib/client/markdown/source-chip.js.map +1 -1
- package/lib/client/notifications/notification-dispatcher.js +90 -0
- package/lib/client/notifications/notification-dispatcher.js.map +1 -0
- package/lib/client/notifications/preferences.js +61 -0
- package/lib/client/notifications/preferences.js.map +1 -0
- package/lib/client/notifications/turn-completion-source.js +82 -0
- package/lib/client/notifications/turn-completion-source.js.map +1 -0
- package/lib/client/notifications/use-turn-notifications.js +108 -0
- package/lib/client/notifications/use-turn-notifications.js.map +1 -0
- package/lib/client/panels/PanelHost.js +5 -5
- package/lib/client/panels/PanelHost.js.map +1 -1
- package/lib/client/panels/PanelLauncher.js +2 -2
- package/lib/client/panels/PanelLauncher.js.map +1 -1
- package/lib/client/project-session-state.js +156 -4
- package/lib/client/project-session-state.js.map +1 -1
- package/lib/client/role/RoleSelector.js +9 -4
- package/lib/client/role/RoleSelector.js.map +1 -1
- package/lib/client/settings/card.js +58 -17
- package/lib/client/settings/card.js.map +1 -1
- package/lib/client/settings/fields.js +11 -10
- package/lib/client/settings/fields.js.map +1 -1
- package/lib/client/settings/format.js +0 -9
- package/lib/client/settings/format.js.map +1 -1
- package/lib/client/settings/sections/access.js +5 -5
- package/lib/client/settings/sections/access.js.map +1 -1
- package/lib/client/settings/sections/accounts.js +10 -10
- package/lib/client/settings/sections/accounts.js.map +1 -1
- package/lib/client/settings/sections/attachments.js +6 -6
- package/lib/client/settings/sections/attachments.js.map +1 -1
- package/lib/client/settings/sections/branding.js +7 -7
- package/lib/client/settings/sections/branding.js.map +1 -1
- package/lib/client/settings/sections/common.js +4 -2
- package/lib/client/settings/sections/common.js.map +1 -1
- package/lib/client/settings/sections/docs.js +4 -3
- package/lib/client/settings/sections/docs.js.map +1 -1
- package/lib/client/settings/sections/embedding.js +2 -2
- package/lib/client/settings/sections/embedding.js.map +1 -1
- package/lib/client/settings/sections/interface.js +12 -12
- package/lib/client/settings/sections/interface.js.map +1 -1
- package/lib/client/settings/sections/lockdown.js +9 -9
- package/lib/client/settings/sections/lockdown.js.map +1 -1
- package/lib/client/settings/sections/notes.js +12 -12
- package/lib/client/settings/sections/notes.js.map +1 -1
- package/lib/client/settings/sections/session.js +15 -12
- package/lib/client/settings/sections/session.js.map +1 -1
- package/lib/client/settings/sections/slash.js +9 -9
- package/lib/client/settings/sections/slash.js.map +1 -1
- package/lib/client/settings/sections/sources.js +26 -26
- package/lib/client/settings/sections/sources.js.map +1 -1
- package/lib/client/settings/sections/status.js +2 -2
- package/lib/client/settings/sections/status.js.map +1 -1
- package/lib/client/settings/styles.js +15 -9
- package/lib/client/settings/styles.js.map +1 -1
- package/lib/client/slash/SlashPalette.js +4 -4
- package/lib/client/slash/SlashPalette.js.map +1 -1
- package/lib/client/styles.js +133 -83
- package/lib/client/styles.js.map +1 -1
- package/lib/client/theme-preference.js +162 -0
- package/lib/client/theme-preference.js.map +1 -0
- package/lib/client/types.js +8 -0
- package/lib/client/types.js.map +1 -1
- package/lib/client/use-session-ui-state.js +7 -5
- package/lib/client/use-session-ui-state.js.map +1 -1
- package/lib/client/user-settings/GeneralSettingsPage.js +6 -6
- package/lib/client/user-settings/GeneralSettingsPage.js.map +1 -1
- package/lib/client/user-settings/IntegrationTokensPage.js +6 -6
- package/lib/client/user-settings/IntegrationTokensPage.js.map +1 -1
- package/lib/client/user-settings/NotificationSettingsPage.js +107 -0
- package/lib/client/user-settings/NotificationSettingsPage.js.map +1 -0
- package/lib/client/user-settings/PasswordSettingsPage.js +1 -1
- package/lib/client/user-settings/PasswordSettingsPage.js.map +1 -1
- package/lib/client/user-settings/ProfileSettingsPage.js +2 -2
- package/lib/client/user-settings/ProfileSettingsPage.js.map +1 -1
- package/lib/client/user-settings/SkillCatalog.js +3 -3
- package/lib/client/user-settings/SkillCatalog.js.map +1 -1
- package/lib/client/user-settings/SkillEditor.js +26 -8
- package/lib/client/user-settings/SkillEditor.js.map +1 -1
- package/lib/client/user-settings/SkillToolPicker.js +3 -3
- package/lib/client/user-settings/SkillToolPicker.js.map +1 -1
- package/lib/client/user-settings/SkillsSettingsPage.js +1 -1
- package/lib/client/user-settings/SkillsSettingsPage.js.map +1 -1
- package/lib/client/user-settings/StartersSettingsPage.js +6 -6
- package/lib/client/user-settings/StartersSettingsPage.js.map +1 -1
- package/lib/client/user-settings/UserSettingsDialog.js +7 -2
- package/lib/client/user-settings/UserSettingsDialog.js.map +1 -1
- package/lib/client/user-settings/copy.js +2 -0
- package/lib/client/user-settings/copy.js.map +1 -1
- package/lib/client/user-settings/draft.js +4 -1
- package/lib/client/user-settings/draft.js.map +1 -1
- package/lib/client/user-settings/fields.js +5 -5
- package/lib/client/user-settings/fields.js.map +1 -1
- package/lib/client.js +7228 -4002
- package/lib/client.js.map +1 -1
- package/lib/config-resolvers/defaults.js +7 -0
- package/lib/config-resolvers/defaults.js.map +1 -1
- package/lib/config-resolvers/lockdown.js +7 -0
- package/lib/config-resolvers/lockdown.js.map +1 -1
- package/lib/config-resolvers/notifications.js +15 -0
- package/lib/config-resolvers/notifications.js.map +1 -0
- package/lib/config-resolvers/session.js +11 -1
- package/lib/config-resolvers/session.js.map +1 -1
- package/lib/config.js +67 -18
- package/lib/config.js.map +1 -1
- package/lib/enforcement/tool-grants.js +6 -6
- package/lib/enforcement/tool-grants.js.map +1 -1
- package/lib/index.js +145 -30
- package/lib/index.js.map +1 -1
- package/lib/integration/answer.js +74 -8
- package/lib/integration/answer.js.map +1 -1
- package/lib/integration/expert-memory.js +39 -0
- package/lib/integration/expert-memory.js.map +1 -0
- package/lib/integration/host-runner.js +26 -14
- package/lib/integration/host-runner.js.map +1 -1
- package/lib/notifications.js +66 -0
- package/lib/notifications.js.map +1 -0
- package/lib/personal-skills/errors.js.map +1 -1
- package/lib/personal-skills/service.js +81 -7
- package/lib/personal-skills/service.js.map +1 -1
- package/lib/prompt-notes.js +2 -10
- package/lib/prompt-notes.js.map +1 -1
- package/lib/qa-tools/docs-tools.js +1 -1
- package/lib/qa-tools/docs-tools.js.map +1 -1
- package/lib/qa-tools/lifecycle.js +6 -3
- package/lib/qa-tools/lifecycle.js.map +1 -1
- package/lib/request-queue.js +32 -0
- package/lib/request-queue.js.map +1 -0
- package/lib/resolve-config.js +2 -0
- package/lib/resolve-config.js.map +1 -1
- package/lib/secure-session.js +7 -2
- package/lib/secure-session.js.map +1 -1
- package/lib/shared/settings.js +19 -2
- package/lib/shared/settings.js.map +1 -1
- package/lib/turn-failure-log.js +67 -0
- package/lib/turn-failure-log.js.map +1 -0
- package/lib/typert.host.js +1398 -651
- package/lib/typert.remote-client.d.ts +15 -1
- package/lib/typert.remote-client.js +1315 -645
- package/lib/types/access/capability-catalog.d.ts +20 -4
- package/lib/types/access/model.d.ts +23 -0
- package/lib/types/access/service.d.ts +2 -3
- package/lib/types/account-remotes.d.ts +8 -1
- package/lib/types/accounts/database.d.ts +13 -3
- package/lib/types/accounts/errors.d.ts +9 -1
- package/lib/types/accounts/file.d.ts +12 -0
- package/lib/types/accounts/store.d.ts +30 -2
- package/lib/types/admin/quality-store.d.ts +33 -0
- package/lib/types/admin/service.d.ts +60 -1
- package/lib/types/client/QaAccountsController.d.ts +25 -2
- package/lib/types/client/QaConfigController.d.ts +2 -2
- package/lib/types/client/QaSessionController.d.ts +199 -6
- package/lib/types/client/QaSurface.d.ts +6 -1
- package/lib/types/client/admin/pages/ExpertMemory.d.ts +19 -0
- package/lib/types/client/admin/routes.d.ts +3 -1
- package/lib/types/client/admin/shared.d.ts +4 -0
- package/lib/types/client/components/Markdown.d.ts +8 -1
- package/lib/types/client/components/QaHeader.d.ts +3 -1
- package/lib/types/client/components/QaModal.d.ts +7 -0
- package/lib/types/client/components/QaQueueDock.d.ts +27 -0
- package/lib/types/client/components/QaRequestQueue.d.ts +20 -0
- package/lib/types/client/components/QaThemeSwitcher.d.ts +14 -0
- package/lib/types/client/components/QaTurnNotice.d.ts +55 -0
- package/lib/types/client/focus-ring.d.ts +65 -0
- package/lib/types/client/lineage.d.ts +3 -13
- package/lib/types/client/markdown/blocks.d.ts +30 -2
- package/lib/types/client/markdown/render.d.ts +4 -1
- package/lib/types/client/notifications/notification-dispatcher.d.ts +68 -0
- package/lib/types/client/notifications/preferences.d.ts +44 -0
- package/lib/types/client/notifications/turn-completion-source.d.ts +114 -0
- package/lib/types/client/notifications/use-turn-notifications.d.ts +51 -0
- package/lib/types/client/project-session-state.d.ts +35 -1
- package/lib/types/client/role/RoleSelector.d.ts +7 -1
- package/lib/types/client/settings/card.d.ts +36 -5
- package/lib/types/client/settings/fields.d.ts +24 -0
- package/lib/types/client/settings/format.d.ts +0 -5
- package/lib/types/client/settings/sections/common.d.ts +3 -1
- package/lib/types/client/settings/sections/session.d.ts +2 -1
- package/lib/types/client/settings/styles.d.ts +9 -4
- package/lib/types/client/settings-extensions/user-session.d.ts +1 -1
- package/lib/types/client/theme-preference.d.ts +69 -0
- package/lib/types/client/types.d.ts +25 -1
- package/lib/types/client/use-session-ui-state.d.ts +6 -4
- package/lib/types/client/user-settings/GeneralSettingsPage.d.ts +5 -5
- package/lib/types/client/user-settings/NotificationSettingsPage.d.ts +40 -0
- package/lib/types/client/user-settings/UserSettingsDialog.d.ts +12 -2
- package/lib/types/client/user-settings/draft.d.ts +4 -1
- package/lib/types/client/user-settings/fields.d.ts +7 -0
- package/lib/types/config-resolvers/notifications.d.ts +10 -0
- package/lib/types/config-resolvers/session.d.ts +6 -0
- package/lib/types/config.d.ts +20 -1
- package/lib/types/index.d.ts +53 -5
- package/lib/types/integration/answer.d.ts +27 -0
- package/lib/types/integration/expert-memory.d.ts +49 -0
- package/lib/types/notifications.d.ts +32 -0
- package/lib/types/personal-skills/errors.d.ts +1 -1
- package/lib/types/personal-skills/service.d.ts +6 -0
- package/lib/types/prompt-notes.d.ts +17 -4
- package/lib/types/request-queue.d.ts +32 -0
- package/lib/types/shared/settings.d.ts +19 -2
- package/lib/types/turn-failure-log.d.ts +18 -0
- package/lib/types/types.d.ts +180 -4
- package/package.json +64 -63
- package/scripts/attach-workspace-sessions.mjs +24 -5
- package/scripts/repair-session-events.mjs +25 -5
- package/lib/client/markdown/MermaidBlock.js +0 -80
- package/lib/client/markdown/MermaidBlock.js.map +0 -1
- package/lib/types/client/markdown/MermaidBlock.d.ts +0 -6
|
@@ -6,6 +6,7 @@ import { AdminConversation, AdminConversations, } from "./pages/Conversations.js
|
|
|
6
6
|
import { AdminReviewQueue } from "./pages/Review.js";
|
|
7
7
|
import { AdminAudit, AdminFeedback, AdminQuality } from "./pages/Quality.js";
|
|
8
8
|
import { AdminSkillFiles } from "./pages/SkillFiles.js";
|
|
9
|
+
import { AdminExpertMemory } from "./pages/ExpertMemory.js";
|
|
9
10
|
import { AdminUserDetail, AdminUsers } from "./pages/Users.js";
|
|
10
11
|
const TOOL_BUCKET_LABELS = {
|
|
11
12
|
always: "Всегда доступны",
|
|
@@ -78,6 +79,12 @@ const NAV = [
|
|
|
78
79
|
group: "Качество",
|
|
79
80
|
permission: "analytics.read",
|
|
80
81
|
},
|
|
82
|
+
{
|
|
83
|
+
page: "memory",
|
|
84
|
+
label: "Память экспертов",
|
|
85
|
+
group: "Качество",
|
|
86
|
+
permission: "memory.read",
|
|
87
|
+
},
|
|
81
88
|
{ page: "audit", label: "Аудит", group: "Система", permission: "audit.read" },
|
|
82
89
|
];
|
|
83
90
|
/** Sections that read the console's own surface rather than the policy file. */
|
|
@@ -91,6 +98,7 @@ const CONSOLE_PAGES = new Set([
|
|
|
91
98
|
"review",
|
|
92
99
|
"feedback",
|
|
93
100
|
"quality",
|
|
101
|
+
"memory",
|
|
94
102
|
"audit",
|
|
95
103
|
]);
|
|
96
104
|
/** The permission each section needs, for the nav filter. */
|
|
@@ -107,7 +115,11 @@ function canOpen(role, page) {
|
|
|
107
115
|
if (role === "reviewer") {
|
|
108
116
|
return (permission === "conversations.read.all" ||
|
|
109
117
|
permission === "reviews.read" ||
|
|
110
|
-
permission === "analytics.read"
|
|
118
|
+
permission === "analytics.read" ||
|
|
119
|
+
// A reviewer reads expert memory because that is where a wrong answer
|
|
120
|
+
// starts repeating itself; the `memory.manage` check the Host makes on
|
|
121
|
+
// every write is what keeps the edit away from them.
|
|
122
|
+
permission === "memory.read");
|
|
111
123
|
}
|
|
112
124
|
// A plain user never reaches the console; the Host refuses every
|
|
113
125
|
// administrative call for that role anyway.
|
|
@@ -121,6 +133,14 @@ function canOpen(role, page) {
|
|
|
121
133
|
function canDeleteConversation(role) {
|
|
122
134
|
return role === undefined || role === "admin";
|
|
123
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Whether the console draws the memory-edit controls. `memory.read` opens the
|
|
138
|
+
* list for a reviewer as well; only `memory.manage` — the admin role — writes,
|
|
139
|
+
* and the Host re-checks that on every call.
|
|
140
|
+
*/
|
|
141
|
+
function canManageMemory(role) {
|
|
142
|
+
return role === undefined || role === "admin";
|
|
143
|
+
}
|
|
124
144
|
/** Detail routes keep their parent navigation entry current. */
|
|
125
145
|
function isCurrentEntry(route, page) {
|
|
126
146
|
if (route.page === page)
|
|
@@ -161,6 +181,7 @@ function bucketOf(selection, bucket) {
|
|
|
161
181
|
return selection.tools[bucket];
|
|
162
182
|
}
|
|
163
183
|
function CapabilityPicker(props) {
|
|
184
|
+
const zone = props.testId ?? "qa-admin-capabilities";
|
|
164
185
|
const [query, setQuery] = useState("");
|
|
165
186
|
const [selectedOnly, setSelectedOnly] = useState(false);
|
|
166
187
|
const inherited = new Set(props.inherited ?? []);
|
|
@@ -182,12 +203,12 @@ function CapabilityPicker(props) {
|
|
|
182
203
|
: `${row.source.kind} · ${row.source.name}`;
|
|
183
204
|
groups.set(group, [...(groups.get(group) ?? []), row]);
|
|
184
205
|
}
|
|
185
|
-
return (_jsxs("div", { className: "dsh-qa-capabilities", children: [_jsxs("div", { className: "dsh-qa-capabilities__toolbar", children: [_jsx("input", { type: "search", value: query, placeholder: props.type === "tool" ? "Поиск инструментов…" : "Поиск навыков…", onChange: (event) => setQuery(event.currentTarget.value) }), _jsxs("label", { children: [_jsx("input", { type: "checkbox", checked: selectedOnly, onChange: (event) => setSelectedOnly(event.currentTarget.checked) }), "\u0422\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435"] })] }), rows.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E." })) : ([...groups].map(([group, entries]) => (_jsxs("section", { className: "dsh-qa-capabilities__group", children: [_jsx("h4", { children: group.toLocaleUpperCase() }), entries.map((capability) => {
|
|
206
|
+
return (_jsxs("div", { className: "dsh-qa-capabilities", "data-testid": zone, children: [_jsxs("div", { className: "dsh-qa-capabilities__toolbar", "data-testid": `${zone}-toolbar`, children: [_jsx("input", { type: "search", "data-testid": `${zone}-search`, value: query, placeholder: props.type === "tool" ? "Поиск инструментов…" : "Поиск навыков…", onChange: (event) => setQuery(event.currentTarget.value) }), _jsxs("label", { "data-testid": `${zone}-selected-only`, children: [_jsx("input", { type: "checkbox", checked: selectedOnly, onChange: (event) => setSelectedOnly(event.currentTarget.checked) }), "\u0422\u043E\u043B\u044C\u043A\u043E \u0432\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435"] })] }), rows.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", "data-testid": `${zone}-empty`, children: "\u041D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E." })) : ([...groups].map(([group, entries]) => (_jsxs("section", { className: "dsh-qa-capabilities__group", "data-testid": `${zone}-group`, children: [_jsx("h4", { children: group.toLocaleUpperCase() }), entries.map((capability) => {
|
|
186
207
|
const required = system.has(capability.id);
|
|
187
208
|
const common = inherited.has(capability.id);
|
|
188
209
|
const checked = required || common || selected.has(capability.id);
|
|
189
210
|
const skill = props.skillDetails?.find(({ name }) => name === capability.id);
|
|
190
|
-
return (_jsxs("label", { className: "dsh-qa-capability", title: required
|
|
211
|
+
return (_jsxs("label", { className: "dsh-qa-capability", "data-testid": `${zone}-item`, title: required
|
|
191
212
|
? "Системная возможность"
|
|
192
213
|
: common
|
|
193
214
|
? "Управляется в общих возможностях"
|
|
@@ -198,12 +219,12 @@ function CapabilityPicker(props) {
|
|
|
198
219
|
else
|
|
199
220
|
next.delete(capability.id);
|
|
200
221
|
props.onChange?.([...next]);
|
|
201
|
-
} }), _jsxs("span", { className: "dsh-qa-capability__copy", children: [_jsx("strong", { children: capability.title }), capability.description === undefined ? null : (_jsx("small", { children: capability.description })), capability.type === "skill" ? (_jsxs(_Fragment, { children: [_jsxs("small", { children: ["Provider:", " ", capability.source.name ?? capability.source.kind, capability.modelInvocable === false
|
|
222
|
+
} }), _jsxs("span", { className: "dsh-qa-capability__copy", "data-testid": `${zone}-item-copy`, children: [_jsx("strong", { children: capability.title }), capability.description === undefined ? null : (_jsx("small", { children: capability.description })), capability.type === "skill" ? (_jsxs(_Fragment, { children: [_jsxs("small", { children: ["Provider:", " ", capability.source.name ?? capability.source.kind, capability.modelInvocable === false
|
|
202
223
|
? " · только вручную"
|
|
203
224
|
: " · доступен модели"] }), skill === undefined ? null : (_jsx("small", { children: skill.descriptor.requiredTools.length === 0
|
|
204
225
|
? "Не выдаёт инструменты"
|
|
205
|
-
: `Выдаёт при активации: ${skill.descriptor.requiredTools.join(", ")}` }))] })) : null] }), required ? (_jsx("em", { children: "\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435" })) : common ? (_jsx("em", { children: "\u041E\u0431\u0449\u0435\u0435" })) : capability.type === "skill" &&
|
|
206
|
-
selected.has(capability.id) ? (_jsx("em", { children: "\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440" })) : null, capability.status === "missing" ? (_jsx("em", { className: "dsh-qa-capability__missing", children: "\u041D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D" })) : null] }, `${capability.type}:${capability.id}`));
|
|
226
|
+
: `Выдаёт при активации: ${skill.descriptor.requiredTools.join(", ")}` }))] })) : null] }), required ? (_jsx("em", { "data-testid": `${zone}-item-system`, children: "\u0421\u0438\u0441\u0442\u0435\u043C\u043D\u043E\u0435" })) : common ? (_jsx("em", { "data-testid": `${zone}-item-common`, children: "\u041E\u0431\u0449\u0435\u0435" })) : capability.type === "skill" &&
|
|
227
|
+
selected.has(capability.id) ? (_jsx("em", { "data-testid": `${zone}-item-admin`, children: "\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440" })) : null, capability.status === "missing" ? (_jsx("em", { className: "dsh-qa-capability__missing", "data-testid": `${zone}-item-missing`, children: "\u041D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D" })) : null] }, `${capability.type}:${capability.id}`));
|
|
207
228
|
})] }, group))))] }));
|
|
208
229
|
}
|
|
209
230
|
function emptySelection() {
|
|
@@ -278,18 +299,18 @@ function RoleEditor(props) {
|
|
|
278
299
|
skills: props.skills,
|
|
279
300
|
}, draft.id);
|
|
280
301
|
const declaredSkills = props.skills.filter(({ name }) => effective.declared.includes(name));
|
|
281
|
-
return (_jsxs("section", { className: "dsh-qa-role-editor", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("button", { type: "button", className: "dsh-qa-admin__back", onClick: props.onCancel, children: "\u2190 \u0421\u0430\u0431\u0440\u043E\u043B\u0438" }), _jsx("h2", { children: existing ? draft.name : "Новая саброль" }), _jsx("p", { children: draft.description || "Профиль возможностей QA-ассистента" })] }) }), _jsx("div", { className: "dsh-qa-admin__tabs", children: [
|
|
302
|
+
return (_jsxs("section", { className: "dsh-qa-role-editor", "data-testid": "qa-admin-role-editor", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("button", { type: "button", className: "dsh-qa-admin__back", "data-testid": "qa-admin-role-back", onClick: props.onCancel, children: "\u2190 \u0421\u0430\u0431\u0440\u043E\u043B\u0438" }), _jsx("h2", { children: existing ? draft.name : "Новая саброль" }), _jsx("p", { children: draft.description || "Профиль возможностей QA-ассистента" })] }) }), _jsx("div", { className: "dsh-qa-admin__tabs", "data-testid": "qa-admin-role-tabs", children: [
|
|
282
303
|
["general", "Общее"],
|
|
283
304
|
["tools", "Инструменты"],
|
|
284
305
|
["skills", "Навыки"],
|
|
285
306
|
["effective", "Фактический доступ"],
|
|
286
|
-
].map(([id, label]) => (_jsx("button", { type: "button", "aria-current": tab === id ? "page" : undefined, onClick: () => setTab(id), children: label }, id))) }), tab === "general" ? (_jsxs("div", { className: "dsh-qa-role-editor__general", children: [_jsxs("label", { children: ["\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435", _jsx("input", { value: draft.name, maxLength: 100, onChange: (event) => setDraft({ ...draft, name: event.currentTarget.value }) })] }), _jsxs("label", { children: ["Slug / ID", _jsx("input", { value: draft.id, disabled: existing, pattern: "[a-z0-9][a-z0-9-]*", onChange: (event) => setDraft({ ...draft, id: event.currentTarget.value }) })] }), _jsxs("label", { className: "dsh-qa-role-editor__wide", children: ["\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435", _jsx("textarea", { value: draft.description ?? "", maxLength: 500, onChange: (event) => setDraft({ ...draft, description: event.currentTarget.value }) })] }), _jsxs("label", { className: "dsh-qa-role-editor__check", children: [_jsx("input", { type: "checkbox", checked: draft.enabled, onChange: (event) => setDraft({ ...draft, enabled: event.currentTarget.checked }) }), "\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0430"] })] })) : tab === "tools" ? (_jsxs("div", { className: "dsh-qa-tool-buckets", children: [_jsxs("section", { children: [_jsx("h3", { children: TOOL_BUCKET_LABELS.always }), _jsx("p", { children: "\u0412\u0438\u0434\u043D\u044B \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u0448\u0430\u0433\u0430 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430." }), _jsx(CapabilityPicker, { type: "tool", catalog: props.catalog, inherited: props.common.tools.always, system: props.system.tools.always, selected: draft.capabilities.tools.always, onChange: (values) => setTools("always", values) })] }), _jsxs("section", { children: [_jsx("h3", { children: TOOL_BUCKET_LABELS.skillGrantable }), _jsx("p", { children: "\u042D\u0442\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u0430\u0433\u0435\u043D\u0442\u0443 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E. \u041E\u043D\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0442\u0441\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B, \u043A\u043E\u0433\u0434\u0430 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0439 \u043D\u0430\u0432\u044B\u043A, \u043A\u043E\u0442\u043E\u0440\u043E\u043C\u0443 \u043E\u043D\u0438 \u043D\u0443\u0436\u043D\u044B." }), _jsx(CapabilityPicker, { type: "tool", catalog: props.catalog, inherited: props.common.tools.skillGrantable, system: props.system.tools.skillGrantable, selected: draft.capabilities.tools.skillGrantable, onChange: (values) => setTools("skillGrantable", values) }), effective.via.size === 0 ? null : (_jsxs("div", { className: "dsh-qa-skill-grants", children: [_jsx("h4", { children: "\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438" }), _jsx("ul", { children: [...effective.via].map(([tool, skills]) => (_jsxs("li", { children: [_jsx("code", { children: tool }), _jsxs("span", { children: ["\u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0447\u0435\u0440\u0435\u0437: ", skills.join(", ")] })] }, tool))) })] }))] }), _jsxs("section", { children: [_jsx("h3", { children: TOOL_BUCKET_LABELS.deny }), _jsx("p", { children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0441 \u044D\u0442\u043E\u0439 \u0441\u0430\u0431\u0440\u043E\u043B\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043B\u0438 \u0438\u0445 \u0432\u044B\u0434\u0430\u044E\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0439 \u043D\u0430\u0431\u043E\u0440 \u0441\u0442\u0435\u043D\u0434\u0430, \u043E\u0431\u0449\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0438\u043B\u0438 \u043D\u0430\u0432\u044B\u043A. \u0417\u0430\u043F\u0440\u0435\u0442 \u0441\u0438\u043B\u044C\u043D\u0435\u0435 \u043B\u044E\u0431\u043E\u0439 \u0432\u044B\u0434\u0430\u0447\u0438 \u0438 \u0441\u0443\u0436\u0430\u0435\u0442 \u043D\u0430\u0431\u043E\u0440, \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439 \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C \u044D\u043A\u0441\u043F\u0435\u0440\u0442\u0430\u043C." }), _jsx(CapabilityPicker, { type: "tool", catalog: props.catalog, selected: draft.capabilities.tools.deny ?? [], onChange: (values) => setTools("deny", values) })] })] })) : tab === "skills" ? (_jsxs("div", { className: "dsh-qa-role-skills", children: [_jsx("p", { children: "\u041D\u0430\u0432\u044B\u043A \u0441\u0430\u043C \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442, \u043A\u0430\u043A\u0438\u043C \u0441\u0430\u0431\u0440\u043E\u043B\u044F\u043C \u043E\u043D \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. \u0417\u0434\u0435\u0441\u044C \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u043E\u0431\u0449\u0438\u0435 \u043D\u0430\u0432\u044B\u043A\u0438 \u0438 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F, \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0432\u0440\u0443\u0447\u043D\u0443\u044E." }), _jsxs("section", { children: [_jsx("h4", { children: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u044B \u043D\u0430\u0432\u044B\u043A\u0430\u043C\u0438" }), declaredSkills.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041D\u0438 \u043E\u0434\u0438\u043D \u043D\u0430\u0432\u044B\u043A \u043D\u0435 \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442 \u044D\u0442\u0443 \u0441\u0430\u0431\u0440\u043E\u043B\u044C." })) : (_jsx("ul", { className: "dsh-qa-skill-list", children: declaredSkills.map((skill) => (_jsxs("li", { children: [_jsx("strong", { children: skill.name }), _jsx("span", { children: skill.descriptor.requiredTools.length === 0
|
|
307
|
+
].map(([id, label]) => (_jsx("button", { type: "button", "data-testid": `qa-admin-role-tab-${id}`, "aria-current": tab === id ? "page" : undefined, onClick: () => setTab(id), children: label }, id))) }), tab === "general" ? (_jsxs("div", { className: "dsh-qa-role-editor__general", "data-testid": "qa-admin-role-general", children: [_jsxs("label", { "data-testid": "qa-admin-role-name-field", children: ["\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435", _jsx("input", { "data-testid": "qa-admin-role-name", value: draft.name, maxLength: 100, onChange: (event) => setDraft({ ...draft, name: event.currentTarget.value }) })] }), _jsxs("label", { "data-testid": "qa-admin-role-slug-field", children: ["Slug / ID", _jsx("input", { "data-testid": "qa-admin-role-slug", value: draft.id, disabled: existing, pattern: "[a-z0-9][a-z0-9-]*", onChange: (event) => setDraft({ ...draft, id: event.currentTarget.value }) })] }), _jsxs("label", { className: "dsh-qa-role-editor__wide", "data-testid": "qa-admin-role-description-field", children: ["\u041E\u043F\u0438\u0441\u0430\u043D\u0438\u0435", _jsx("textarea", { "data-testid": "qa-admin-role-description", value: draft.description ?? "", maxLength: 500, onChange: (event) => setDraft({ ...draft, description: event.currentTarget.value }) })] }), _jsxs("label", { className: "dsh-qa-role-editor__check", "data-testid": "qa-admin-role-enabled-field", children: [_jsx("input", { type: "checkbox", "data-testid": "qa-admin-role-enabled", checked: draft.enabled, onChange: (event) => setDraft({ ...draft, enabled: event.currentTarget.checked }) }), "\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0430"] })] })) : tab === "tools" ? (_jsxs("div", { className: "dsh-qa-tool-buckets", "data-testid": "qa-admin-role-tool-buckets", children: [_jsxs("section", { "data-testid": "qa-admin-role-bucket-always", children: [_jsx("h3", { children: TOOL_BUCKET_LABELS.always }), _jsx("p", { children: "\u0412\u0438\u0434\u043D\u044B \u0430\u0433\u0435\u043D\u0442\u0443 \u0441 \u043F\u0435\u0440\u0432\u043E\u0433\u043E \u0448\u0430\u0433\u0430 \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430." }), _jsx(CapabilityPicker, { type: "tool", testId: "qa-admin-role-tools-always", catalog: props.catalog, inherited: props.common.tools.always, system: props.system.tools.always, selected: draft.capabilities.tools.always, onChange: (values) => setTools("always", values) })] }), _jsxs("section", { "data-testid": "qa-admin-role-bucket-skill-grantable", children: [_jsx("h3", { children: TOOL_BUCKET_LABELS.skillGrantable }), _jsx("p", { children: "\u042D\u0442\u0438 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u044E\u0442\u0441\u044F \u0430\u0433\u0435\u043D\u0442\u0443 \u043F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E. \u041E\u043D\u0438 \u0441\u0442\u0430\u043D\u043E\u0432\u044F\u0442\u0441\u044F \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B, \u043A\u043E\u0433\u0434\u0430 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044F \u0440\u0430\u0437\u0440\u0435\u0448\u0451\u043D\u043D\u044B\u0439 \u043D\u0430\u0432\u044B\u043A, \u043A\u043E\u0442\u043E\u0440\u043E\u043C\u0443 \u043E\u043D\u0438 \u043D\u0443\u0436\u043D\u044B." }), _jsx(CapabilityPicker, { type: "tool", testId: "qa-admin-role-tools-skill-grantable", catalog: props.catalog, inherited: props.common.tools.skillGrantable, system: props.system.tools.skillGrantable, selected: draft.capabilities.tools.skillGrantable, onChange: (values) => setTools("skillGrantable", values) }), effective.via.size === 0 ? null : (_jsxs("div", { className: "dsh-qa-skill-grants", "data-testid": "qa-admin-role-skill-grants", children: [_jsx("h4", { children: "\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044E\u0442 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u043D\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438" }), _jsx("ul", { "data-testid": "qa-admin-role-skill-grant-list", children: [...effective.via].map(([tool, skills]) => (_jsxs("li", { "data-testid": "qa-admin-role-skill-grant", children: [_jsx("code", { children: tool }), _jsxs("span", { children: ["\u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0447\u0435\u0440\u0435\u0437: ", skills.join(", ")] })] }, tool))) })] }))] }), _jsxs("section", { "data-testid": "qa-admin-role-bucket-deny", children: [_jsx("h3", { children: TOOL_BUCKET_LABELS.deny }), _jsx("p", { children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0441\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0441 \u044D\u0442\u043E\u0439 \u0441\u0430\u0431\u0440\u043E\u043B\u0438, \u0434\u0430\u0436\u0435 \u0435\u0441\u043B\u0438 \u0438\u0445 \u0432\u044B\u0434\u0430\u044E\u0442 \u0441\u0438\u0441\u0442\u0435\u043C\u043D\u044B\u0439 \u043D\u0430\u0431\u043E\u0440 \u0441\u0442\u0435\u043D\u0434\u0430, \u043E\u0431\u0449\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0438\u043B\u0438 \u043D\u0430\u0432\u044B\u043A. \u0417\u0430\u043F\u0440\u0435\u0442 \u0441\u0438\u043B\u044C\u043D\u0435\u0435 \u043B\u044E\u0431\u043E\u0439 \u0432\u044B\u0434\u0430\u0447\u0438 \u0438 \u0441\u0443\u0436\u0430\u0435\u0442 \u043D\u0430\u0431\u043E\u0440, \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B\u0439 \u0434\u0435\u043B\u0435\u0433\u0438\u0440\u043E\u0432\u0430\u043D\u043D\u044B\u043C \u044D\u043A\u0441\u043F\u0435\u0440\u0442\u0430\u043C." }), _jsx(CapabilityPicker, { type: "tool", testId: "qa-admin-role-tools-deny", catalog: props.catalog, selected: draft.capabilities.tools.deny ?? [], onChange: (values) => setTools("deny", values) })] })] })) : tab === "skills" ? (_jsxs("div", { className: "dsh-qa-role-skills", "data-testid": "qa-admin-role-skills", children: [_jsx("p", { children: "\u041D\u0430\u0432\u044B\u043A \u0441\u0430\u043C \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442, \u043A\u0430\u043A\u0438\u043C \u0441\u0430\u0431\u0440\u043E\u043B\u044F\u043C \u043E\u043D \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D. \u0417\u0434\u0435\u0441\u044C \u043D\u0430\u0441\u0442\u0440\u0430\u0438\u0432\u0430\u044E\u0442\u0441\u044F \u043E\u0431\u0449\u0438\u0435 \u043D\u0430\u0432\u044B\u043A\u0438 \u0438 \u043D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F, \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043D\u044B\u0435 \u0432\u0440\u0443\u0447\u043D\u0443\u044E." }), _jsxs("section", { "data-testid": "qa-admin-role-declared-skills", children: [_jsx("h4", { children: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u044B \u043D\u0430\u0432\u044B\u043A\u0430\u043C\u0438" }), declaredSkills.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", "data-testid": "qa-admin-role-declared-empty", children: "\u041D\u0438 \u043E\u0434\u0438\u043D \u043D\u0430\u0432\u044B\u043A \u043D\u0435 \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442 \u044D\u0442\u0443 \u0441\u0430\u0431\u0440\u043E\u043B\u044C." })) : (_jsx("ul", { className: "dsh-qa-skill-list", "data-testid": "qa-admin-role-declared-list", children: declaredSkills.map((skill) => (_jsxs("li", { "data-testid": "qa-admin-role-declared-item", children: [_jsx("strong", { children: skill.name }), _jsx("span", { "data-testid": "qa-admin-role-declared-grants", children: skill.descriptor.requiredTools.length === 0
|
|
287
308
|
? "Не выдаёт инструменты"
|
|
288
|
-
: `Выдаёт при активации: ${skill.descriptor.requiredTools.join(", ")}` }), _jsx("em", { children: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u043E \u043D\u0430\u0432\u044B\u043A\u043E\u043C" })] }, skill.name))) })), _jsx("p", { className: "dsh-qa-role-skills__hint", children: "\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043D\u0430\u0432\u044B\u043A \u043C\u043E\u0436\u043D\u043E \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u00AB\u041D\u0430\u0432\u044B\u043A\u0438\u00BB." })] }), _jsxs("section", { children: [_jsx("h4", { children: "\u041E\u0431\u0449\u0438\u0435 \u0438 \u0440\u043E\u043B\u0435\u0432\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438" }), _jsx(CapabilityPicker, { type: "skill", catalog: props.catalog, inherited: props.common.skills, system: props.system.skills, selected: draft.capabilities.skills, skillDetails: props.skills, onChange: setSkills })] })] })) : (_jsxs("div", { className: "dsh-qa-effective", children: [_jsxs("h3", { children: ["\u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0434\u043E\u0441\u0442\u0443\u043F \u0434\u043B\u044F ", draft.name || draft.id || "новой роли"] }), _jsxs("section", { children: [_jsx("h4", { children: TOOL_BUCKET_LABELS.always }), effective.alwaysTools.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041D\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432." })) : (_jsx("ul", { className: "dsh-qa-effective__list", children: effective.alwaysTools.map((tool) => (_jsx("li", { children: _jsx("code", { children: tool }) }, tool))) }))] }), _jsxs("section", { children: [_jsx("h4", { children: TOOL_BUCKET_LABELS.skillGrantable }), effective.grantable.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u0420\u043E\u043B\u044C \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0434\u0430\u0432\u0430\u0442\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B." })) : (_jsx("ul", { className: "dsh-qa-effective__list", children: effective.grantable.map((tool) => (_jsxs("li", { children: [_jsx("code", { children: tool }), _jsx("span", { children: effective.via.get(tool) === undefined
|
|
309
|
+
: `Выдаёт при активации: ${skill.descriptor.requiredTools.join(", ")}` }), _jsx("em", { "data-testid": "qa-admin-role-declared-mark", children: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u043E \u043D\u0430\u0432\u044B\u043A\u043E\u043C" })] }, skill.name))) })), _jsx("p", { className: "dsh-qa-role-skills__hint", children: "\u041E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u043E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u043D\u044B\u0439 \u043D\u0430\u0432\u044B\u043A \u043C\u043E\u0436\u043D\u043E \u043D\u0430 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u0435 \u00AB\u041D\u0430\u0432\u044B\u043A\u0438\u00BB." })] }), _jsxs("section", { "data-testid": "qa-admin-role-granted-skills", children: [_jsx("h4", { children: "\u041E\u0431\u0449\u0438\u0435 \u0438 \u0440\u043E\u043B\u0435\u0432\u044B\u0435 \u043D\u0430\u0432\u044B\u043A\u0438" }), _jsx(CapabilityPicker, { type: "skill", testId: "qa-admin-role-skills-picker", catalog: props.catalog, inherited: props.common.skills, system: props.system.skills, selected: draft.capabilities.skills, skillDetails: props.skills, onChange: setSkills })] })] })) : (_jsxs("div", { className: "dsh-qa-effective", "data-testid": "qa-admin-role-effective", children: [_jsxs("h3", { children: ["\u0424\u0430\u043A\u0442\u0438\u0447\u0435\u0441\u043A\u0438\u0439 \u0434\u043E\u0441\u0442\u0443\u043F \u0434\u043B\u044F ", draft.name || draft.id || "новой роли"] }), _jsxs("section", { "data-testid": "qa-admin-role-effective-always", children: [_jsx("h4", { children: TOOL_BUCKET_LABELS.always }), effective.alwaysTools.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", "data-testid": "qa-admin-role-effective-always-empty", children: "\u041D\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432." })) : (_jsx("ul", { className: "dsh-qa-effective__list", "data-testid": "qa-admin-role-effective-list", children: effective.alwaysTools.map((tool) => (_jsx("li", { "data-testid": "qa-admin-role-effective-item", children: _jsx("code", { children: tool }) }, tool))) }))] }), _jsxs("section", { "data-testid": "qa-admin-role-effective-grantable", children: [_jsx("h4", { children: TOOL_BUCKET_LABELS.skillGrantable }), effective.grantable.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", "data-testid": "qa-admin-role-effective-grantable-empty", children: "\u0420\u043E\u043B\u044C \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0432\u044B\u0434\u0430\u0432\u0430\u0442\u044C \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B." })) : (_jsx("ul", { className: "dsh-qa-effective__list", "data-testid": "qa-admin-role-effective-list", children: effective.grantable.map((tool) => (_jsxs("li", { "data-testid": "qa-admin-role-effective-item", children: [_jsx("code", { children: tool }), _jsx("span", { "data-testid": "qa-admin-role-effective-via", children: effective.via.get(tool) === undefined
|
|
289
310
|
? "Сейчас не используется ни одним назначенным навыком"
|
|
290
|
-
: `Доступен через: ${effective.via.get(tool)?.join(", ")}` })] }, tool))) }))] }), effective.denied.length === 0 ? null : (_jsxs("section", { children: [_jsx("h4", { children: TOOL_BUCKET_LABELS.deny }), _jsx("ul", { className: "dsh-qa-effective__list", children: effective.denied.map((tool) => (_jsxs("li", { children: [_jsx("code", { children: tool }), _jsx("span", { children: "\u0421\u043D\u044F\u0442 \u0441 \u044D\u0442\u043E\u0439 \u0441\u0430\u0431\u0440\u043E\u043B\u0438" })] }, tool))) })] })), _jsxs("section", { children: [_jsx("h4", { children: "\u041D\u0430\u0432\u044B\u043A\u0438" }), _jsx("ul", { className: "dsh-qa-effective__list", children: [...unique([...effective.managed, ...effective.declared])].map((skill) => (_jsxs("li", { children: [_jsx("code", { children: skill }), _jsx("span", { children: effective.declared.includes(skill)
|
|
311
|
+
: `Доступен через: ${effective.via.get(tool)?.join(", ")}` })] }, tool))) }))] }), effective.denied.length === 0 ? null : (_jsxs("section", { "data-testid": "qa-admin-role-effective-denied", children: [_jsx("h4", { children: TOOL_BUCKET_LABELS.deny }), _jsx("ul", { className: "dsh-qa-effective__list", "data-testid": "qa-admin-role-effective-list", children: effective.denied.map((tool) => (_jsxs("li", { "data-testid": "qa-admin-role-effective-item", children: [_jsx("code", { children: tool }), _jsx("span", { children: "\u0421\u043D\u044F\u0442 \u0441 \u044D\u0442\u043E\u0439 \u0441\u0430\u0431\u0440\u043E\u043B\u0438" })] }, tool))) })] })), _jsxs("section", { "data-testid": "qa-admin-role-effective-skills", children: [_jsx("h4", { children: "\u041D\u0430\u0432\u044B\u043A\u0438" }), _jsx("ul", { className: "dsh-qa-effective__list", "data-testid": "qa-admin-role-effective-list", children: [...unique([...effective.managed, ...effective.declared])].map((skill) => (_jsxs("li", { "data-testid": "qa-admin-role-effective-item", children: [_jsx("code", { children: skill }), _jsx("span", { "data-testid": "qa-admin-role-effective-source", children: effective.declared.includes(skill)
|
|
291
312
|
? "Назначен навыком"
|
|
292
|
-
: "Назначен администратором" })] }, skill))) })] })] })), _jsxs("div", { className: "dsh-qa-admin__savebar", children: [_jsx("span", { children: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u044E\u0442\u0441\u044F \u043A \u043D\u043E\u0432\u044B\u043C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430\u043C." }), _jsx("button", { type: "button", onClick: props.onCancel, children: "\u041E\u0442\u043C\u0435\u043D\u0430" }), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", disabled: saving || draft.id.trim() === "" || draft.name.trim() === "", onClick: () => {
|
|
313
|
+
: "Назначен администратором" })] }, skill))) })] })] })), _jsxs("div", { className: "dsh-qa-admin__savebar", "data-testid": "qa-admin-role-savebar", children: [_jsx("span", { children: "\u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u044E\u0442\u0441\u044F \u043A \u043D\u043E\u0432\u044B\u043C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430\u043C." }), _jsx("button", { type: "button", "data-testid": "qa-admin-role-cancel", onClick: props.onCancel, children: "\u041E\u0442\u043C\u0435\u043D\u0430" }), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", "data-testid": "qa-admin-role-save", disabled: saving || draft.id.trim() === "" || draft.name.trim() === "", onClick: () => {
|
|
293
314
|
setSaving(true);
|
|
294
315
|
void props.onSave(draft).finally(() => setSaving(false));
|
|
295
316
|
}, children: saving ? "Сохраняю…" : "Сохранить" })] })] }));
|
|
@@ -321,38 +342,42 @@ function SkillAssignmentEditor(props) {
|
|
|
321
342
|
...(disabled ? { disabled: true } : {}),
|
|
322
343
|
};
|
|
323
344
|
};
|
|
324
|
-
return (_jsxs("section", { className: "dsh-qa-skill-detail", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("button", { type: "button", className: "dsh-qa-admin__back", onClick: props.onCancel, children: "\u2190 \u041D\u0430\u0432\u044B\u043A\u0438" }), _jsx("h2", { children: props.skill.name }), _jsx("p", { children: props.skill.description ??
|
|
345
|
+
return (_jsxs("section", { className: "dsh-qa-skill-detail", "data-testid": "qa-admin-skill-editor", children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("button", { type: "button", className: "dsh-qa-admin__back", "data-testid": "qa-admin-skill-back", onClick: props.onCancel, children: "\u2190 \u041D\u0430\u0432\u044B\u043A\u0438" }), _jsx("h2", { children: props.skill.name }), _jsx("p", { children: props.skill.description ??
|
|
325
346
|
(props.skill.status === "missing"
|
|
326
347
|
? "Навык назначен, но не установлен."
|
|
327
|
-
: "Без описания") })] }) }), _jsxs("div", { className: "dsh-qa-skill-detail__grid", children: [_jsxs("section", { children: [_jsx("h4", { children: "\u0414\u043E\u0441\u0442\u0443\u043F" }), _jsxs("label", { className: "dsh-qa-role-editor__check", children: [_jsx("input", { type: "checkbox", checked: forceCommon, onChange: (event) => setForceCommon(event.currentTarget.checked) }), "\u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0432\u0441\u0435\u043C \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u043C \u0441\u0430\u0431\u0440\u043E\u043B\u044F\u043C"] }), _jsxs("label", { className: "dsh-qa-role-editor__check", children: [_jsx("input", { type: "checkbox", checked: disabled, onChange: (event) => setDisabled(event.currentTarget.checked) }), "\u041E\u0442\u043A\u043B\u044E\u0447\u0451\u043D \u0434\u043B\u044F \u0432\u0441\u0435\u0445"] }), _jsx("ul", { className: "dsh-qa-skill-roles", children: props.roles.map((role) => {
|
|
348
|
+
: "Без описания") })] }) }), _jsxs("div", { className: "dsh-qa-skill-detail__grid", "data-testid": "qa-admin-skill-editor-grid", children: [_jsxs("section", { "data-testid": "qa-admin-skill-access", children: [_jsx("h4", { children: "\u0414\u043E\u0441\u0442\u0443\u043F" }), _jsxs("label", { className: "dsh-qa-role-editor__check", "data-testid": "qa-admin-skill-force-common-field", children: [_jsx("input", { type: "checkbox", "data-testid": "qa-admin-skill-force-common", checked: forceCommon, onChange: (event) => setForceCommon(event.currentTarget.checked) }), "\u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D \u0432\u0441\u0435\u043C \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u044B\u043C \u0441\u0430\u0431\u0440\u043E\u043B\u044F\u043C"] }), _jsxs("label", { className: "dsh-qa-role-editor__check", "data-testid": "qa-admin-skill-disabled-field", children: [_jsx("input", { type: "checkbox", "data-testid": "qa-admin-skill-disabled", checked: disabled, onChange: (event) => setDisabled(event.currentTarget.checked) }), "\u041E\u0442\u043A\u043B\u044E\u0447\u0451\u043D \u0434\u043B\u044F \u0432\u0441\u0435\u0445"] }), _jsx("ul", { className: "dsh-qa-skill-roles", "data-testid": "qa-admin-skill-roles", children: props.roles.map((role) => {
|
|
328
349
|
const grant = props.skill.roles.find(({ roleId }) => roleId === role.id);
|
|
329
350
|
const checked = !disabled && visible.has(role.id);
|
|
330
|
-
return (_jsxs("li", { children: [_jsxs("label", { children: [_jsx("input", { type: "checkbox", disabled: disabled, checked: checked, onChange: (event) => {
|
|
351
|
+
return (_jsxs("li", { "data-testid": "qa-admin-skill-role", children: [_jsxs("label", { children: [_jsx("input", { type: "checkbox", "data-testid": "qa-admin-skill-role-check", disabled: disabled, checked: checked, onChange: (event) => {
|
|
331
352
|
const next = new Set(visible);
|
|
332
353
|
if (event.currentTarget.checked)
|
|
333
354
|
next.add(role.id);
|
|
334
355
|
else
|
|
335
356
|
next.delete(role.id);
|
|
336
357
|
setVisible(next);
|
|
337
|
-
} }), role.name] }), grant?.declared === true ? _jsx("em", { children: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u043E \u043D\u0430\u0432\u044B\u043A\u043E\u043C" }) : null, grant?.addedByAdmin === true ? (_jsx("em", { children: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0430\u0434\u043C\u0438\u043D\u043E\u043C" })) : null, grant?.removedByAdmin === true ? (_jsx("em", { children: "\u041E\u0442\u043E\u0437\u0432\u0430\u043D\u043E \u0430\u0434\u043C\u0438\u043D\u043E\u043C" })) : null] }, role.id));
|
|
338
|
-
}) }), props.skill.descriptor.warnings.length === 0 ? null : (_jsx("ul", { className: "dsh-qa-skill-warnings", children: props.skill.descriptor.warnings.map((warning) => (_jsxs("li", { children: ["\u26A0 ", warning] }, warning))) }))] }), _jsxs("section", { children: [_jsx("h4", { children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u043D\u0430\u0432\u044B\u043A\u0430" }), props.skill.tools.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041D\u0430\u0432\u044B\u043A \u043D\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432." })) : (_jsx("ul", { className: "dsh-qa-skill-tools", children: props.skill.tools.map((tool) => (_jsxs("li", { children: [_jsx("code", { children: tool.id }), _jsxs("span", { className: "dsh-qa-skill-tools__state", children: [tool.grantableBy.length > 0 ? (_jsxs("em", { children: ["\u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D: ", tool.grantableBy.join(", ")] })) : null, tool.installed ? null : (_jsx("em", { className: "dsh-qa-capability__missing", children: "\u041D\u0435\u0442 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435" })), tool.blockedFor.length > 0 ? (_jsx("em", { className: "dsh-qa-capability__missing",
|
|
358
|
+
} }), role.name] }), grant?.declared === true ? (_jsx("em", { "data-testid": "qa-admin-skill-role-declared", children: "\u041E\u0431\u044A\u044F\u0432\u043B\u0435\u043D\u043E \u043D\u0430\u0432\u044B\u043A\u043E\u043C" })) : null, grant?.addedByAdmin === true ? (_jsx("em", { "data-testid": "qa-admin-skill-role-added", children: "\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0430\u0434\u043C\u0438\u043D\u043E\u043C" })) : null, grant?.removedByAdmin === true ? (_jsx("em", { "data-testid": "qa-admin-skill-role-removed", children: "\u041E\u0442\u043E\u0437\u0432\u0430\u043D\u043E \u0430\u0434\u043C\u0438\u043D\u043E\u043C" })) : null] }, role.id));
|
|
359
|
+
}) }), props.skill.descriptor.warnings.length === 0 ? null : (_jsx("ul", { className: "dsh-qa-skill-warnings", "data-testid": "qa-admin-skill-warnings", children: props.skill.descriptor.warnings.map((warning) => (_jsxs("li", { children: ["\u26A0 ", warning] }, warning))) }))] }), _jsxs("section", { "data-testid": "qa-admin-skill-tools-panel", children: [_jsx("h4", { children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B \u043D\u0430\u0432\u044B\u043A\u0430" }), props.skill.tools.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", "data-testid": "qa-admin-skill-tools-empty", children: "\u041D\u0430\u0432\u044B\u043A \u043D\u0435 \u0442\u0440\u0435\u0431\u0443\u0435\u0442 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432." })) : (_jsx("ul", { className: "dsh-qa-skill-tools", "data-testid": "qa-admin-skill-tools", children: props.skill.tools.map((tool) => (_jsxs("li", { "data-testid": "qa-admin-skill-tool", children: [_jsx("code", { "data-testid": "qa-admin-skill-tool-id", children: tool.id }), _jsxs("span", { className: "dsh-qa-skill-tools__state", "data-testid": "qa-admin-skill-tool-state", children: [tool.grantableBy.length > 0 ? (_jsxs("em", { "data-testid": "qa-admin-skill-tool-grantable", children: ["\u0414\u043E\u0441\u0442\u0443\u043F\u0435\u043D: ", tool.grantableBy.join(", ")] })) : null, tool.installed ? null : (_jsx("em", { className: "dsh-qa-capability__missing", "data-testid": "qa-admin-skill-tool-uninstalled", children: "\u041D\u0435\u0442 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440\u0435" })), tool.blockedFor.length > 0 ? (_jsx("em", { className: "dsh-qa-capability__missing", "data-testid": tool.grantableBy.length === 0 &&
|
|
360
|
+
tool.blockedFor.length ===
|
|
361
|
+
props.skill.visibleTo.length
|
|
362
|
+
? "qa-admin-skill-tool-blocked-all"
|
|
363
|
+
: "qa-admin-skill-tool-blocked-roles", children: tool.grantableBy.length === 0 &&
|
|
339
364
|
tool.blockedFor.length === props.skill.visibleTo.length
|
|
340
365
|
? "Недоступен ни одной роли"
|
|
341
366
|
: `Недоступен: ${tool.blockedFor.join(", ")}` })) : null] })] }, tool.id))) })), props.skill.tools.length > 0 &&
|
|
342
|
-
props.skill.tools.every(({ grantableBy }) => grantableBy.length === 0) ? (_jsx("p", { className: "dsh-qa-role-skills__hint", children: "\u041D\u0438 \u043E\u0434\u0438\u043D \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u043D\u0435 \u0432\u0445\u043E\u0434\u0438\u0442 \u0432 \u0441\u043F\u0438\u0441\u043A\u0438 \u00AB\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0447\u0435\u0440\u0435\u0437 \u043D\u0430\u0432\u044B\u043A\u0438\u00BB \u043D\u0438 \u043E\u0434\u043D\u043E\u0439 \u0440\u043E\u043B\u0438 \u2014 \u043E\u0442\u043C\u0435\u0442\u044C\u0442\u0435 \u0438\u0445 \u0432 \u043E\u0431\u0449\u0438\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044F\u0445 \u0438\u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0440\u043E\u043B\u0438." })) : null, props.skill.descriptor.requireAll ? (_jsx("p", { className: "dsh-qa-role-skills__hint", children: "\u041D\u0430\u0432\u044B\u043A \u0441\u0442\u0440\u043E\u0433\u0438\u0439: \u0431\u0435\u0437 \u043B\u044E\u0431\u043E\u0433\u043E \u0438\u0437 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044F." })) : null] })] }), _jsxs("div", { className: "dsh-qa-admin__savebar", children: [_jsx("span", { children: "\u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0445\u0440\u0430\u043D\u044F\u0442\u0441\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u0438 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u044E\u0442 SKILL.md." }), _jsx("button", { type: "button", onClick: props.onCancel, children: "\u041E\u0442\u043C\u0435\u043D\u0430" }), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", disabled: saving, onClick: () => {
|
|
367
|
+
props.skill.tools.every(({ grantableBy }) => grantableBy.length === 0) ? (_jsx("p", { className: "dsh-qa-role-skills__hint", children: "\u041D\u0438 \u043E\u0434\u0438\u043D \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442 \u043D\u0435 \u0432\u0445\u043E\u0434\u0438\u0442 \u0432 \u0441\u043F\u0438\u0441\u043A\u0438 \u00AB\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u0447\u0435\u0440\u0435\u0437 \u043D\u0430\u0432\u044B\u043A\u0438\u00BB \u043D\u0438 \u043E\u0434\u043D\u043E\u0439 \u0440\u043E\u043B\u0438 \u2014 \u043E\u0442\u043C\u0435\u0442\u044C\u0442\u0435 \u0438\u0445 \u0432 \u043E\u0431\u0449\u0438\u0445 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u044F\u0445 \u0438\u043B\u0438 \u0432 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\u0435 \u0440\u043E\u043B\u0438." })) : null, props.skill.descriptor.requireAll ? (_jsx("p", { className: "dsh-qa-role-skills__hint", children: "\u041D\u0430\u0432\u044B\u043A \u0441\u0442\u0440\u043E\u0433\u0438\u0439: \u0431\u0435\u0437 \u043B\u044E\u0431\u043E\u0433\u043E \u0438\u0437 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043E\u043D \u043D\u0435 \u0430\u043A\u0442\u0438\u0432\u0438\u0440\u0443\u0435\u0442\u0441\u044F." })) : null] })] }), _jsxs("div", { className: "dsh-qa-admin__savebar", "data-testid": "qa-admin-skill-savebar", children: [_jsx("span", { children: "\u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u0445\u0440\u0430\u043D\u044F\u0442\u0441\u044F \u043E\u0442\u0434\u0435\u043B\u044C\u043D\u043E \u0438 \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u044E\u0442 SKILL.md." }), _jsx("button", { type: "button", "data-testid": "qa-admin-skill-cancel", onClick: props.onCancel, children: "\u041E\u0442\u043C\u0435\u043D\u0430" }), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", "data-testid": "qa-admin-skill-save", disabled: saving, onClick: () => {
|
|
343
368
|
setSaving(true);
|
|
344
369
|
void props.onSave(override()).finally(() => setSaving(false));
|
|
345
370
|
}, children: saving ? "Сохраняю…" : "Сохранить" })] })] }));
|
|
346
371
|
}
|
|
347
372
|
function SkillTable(props) {
|
|
348
373
|
const name = (id) => props.roles.find((role) => role.id === id)?.name ?? id;
|
|
349
|
-
return (_jsxs("div", { className: "dsh-qa-skills", children: [_jsxs("table", { children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "\u041D\u0430\u0432\u044B\u043A" }), _jsx("th", { children: "\u0410\u0443\u0434\u0438\u0442\u043E\u0440\u0438\u044F" }), _jsx("th", { children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B" }), _jsx("th", { children: "\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435" }), _jsx("th", { children: "\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A" }), _jsx("th", {})] }) }), _jsx("tbody", { children: props.skills.map((skill) => (_jsxs("tr", { children: [_jsxs("td", { children: [_jsx("strong", { children: skill.name }), skill.overridden ? _jsx("em", { children: "\u0418\u0437\u043C\u0435\u043D\u0451\u043D" }) : null, skill.status === "missing" ? (_jsx("em", { className: "dsh-qa-capability__missing", children: "\u041D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D" })) : null] }), _jsx("td", { children: skill.disabled
|
|
374
|
+
return (_jsxs("div", { className: "dsh-qa-skills", "data-testid": "qa-admin-skill-table", children: [_jsxs("table", { children: [_jsx("thead", { children: _jsxs("tr", { children: [_jsx("th", { children: "\u041D\u0430\u0432\u044B\u043A" }), _jsx("th", { children: "\u0410\u0443\u0434\u0438\u0442\u043E\u0440\u0438\u044F" }), _jsx("th", { children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B" }), _jsx("th", { children: "\u0421\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435" }), _jsx("th", { children: "\u0418\u0441\u0442\u043E\u0447\u043D\u0438\u043A" }), _jsx("th", {})] }) }), _jsx("tbody", { children: props.skills.map((skill) => (_jsxs("tr", { "data-testid": "qa-admin-skill-row", children: [_jsxs("td", { "data-testid": "qa-admin-skill-name", children: [_jsx("strong", { children: skill.name }), skill.overridden ? (_jsx("em", { "data-testid": "qa-admin-skill-overridden", children: "\u0418\u0437\u043C\u0435\u043D\u0451\u043D" })) : null, skill.status === "missing" ? (_jsx("em", { className: "dsh-qa-capability__missing", "data-testid": "qa-admin-skill-uninstalled", children: "\u041D\u0435 \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D" })) : null] }), _jsx("td", { "data-testid": "qa-admin-skill-audience", children: skill.disabled
|
|
350
375
|
? "Отключён"
|
|
351
376
|
: skill.visibleTo.length === 0
|
|
352
377
|
? "Не назначен"
|
|
353
|
-
: skill.visibleTo.map(name).join(", ") }), _jsx("td", { children: skill.descriptor.requiredTools.length }), _jsx("td", { children: HEALTH_LABELS[skill.health] }), _jsxs("td", { children: [SOURCE_LABELS[skill.source.kind], skill.source.name === undefined
|
|
378
|
+
: skill.visibleTo.map(name).join(", ") }), _jsx("td", { "data-testid": "qa-admin-skill-tool-count", children: skill.descriptor.requiredTools.length }), _jsx("td", { "data-testid": "qa-admin-skill-health", children: HEALTH_LABELS[skill.health] }), _jsxs("td", { "data-testid": "qa-admin-skill-source", children: [SOURCE_LABELS[skill.source.kind], skill.source.name === undefined
|
|
354
379
|
? ""
|
|
355
|
-
: ` · ${skill.source.name}`] }), _jsx("td", { children: _jsx("button", { type: "button", onClick: () => props.onSelect(skill), children: "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u2192" }) })] }, skill.name))) })] }), props.skills.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u041D\u0430\u0432\u044B\u043A\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B." })) : null] }));
|
|
380
|
+
: ` · ${skill.source.name}`] }), _jsx("td", { children: _jsx("button", { type: "button", "data-testid": "qa-admin-skill-edit", onClick: () => props.onSelect(skill), children: "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u2192" }) })] }, skill.name))) })] }), props.skills.length === 0 ? (_jsx("p", { className: "dsh-qa-admin__empty", "data-testid": "qa-admin-skill-table-empty", children: "\u041D\u0430\u0432\u044B\u043A\u0438 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u044B." })) : null] }));
|
|
356
381
|
}
|
|
357
382
|
export function QaAdmin(props) {
|
|
358
383
|
const [snapshot, setSnapshot] = useState();
|
|
@@ -407,32 +432,32 @@ export function QaAdmin(props) {
|
|
|
407
432
|
return true;
|
|
408
433
|
};
|
|
409
434
|
if (snapshot === undefined) {
|
|
410
|
-
return (_jsx("main", { className: "dsh-qa-admin", "aria-label": "\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 QA", children: _jsx("div", { className: "dsh-qa-admin__loading", children: error ?? "Загружаю роли…" }) }));
|
|
435
|
+
return (_jsx("main", { className: "dsh-qa-admin", "data-testid": "qa-admin-root", "aria-label": "\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 QA", children: _jsx("div", { className: "dsh-qa-admin__loading", "data-testid": "qa-admin-loading", children: error ?? "Загружаю роли…" }) }));
|
|
411
436
|
}
|
|
412
437
|
if (editing !== undefined) {
|
|
413
|
-
return (_jsxs("main", { className: "dsh-qa-admin", "aria-label": "\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0441\u0430\u0431\u0440\u043E\u043B\u0438", children: [_jsx(RoleEditor, { role: editing, catalog: snapshot.catalog, common: snapshot.config.common, system: snapshot.systemRequired, skills: snapshot.skills, subroles: roles, onCancel: () => setEditing(undefined), onSave: async (role) => {
|
|
438
|
+
return (_jsxs("main", { className: "dsh-qa-admin", "data-testid": "qa-admin-root", "aria-label": "\u0420\u0435\u0434\u0430\u043A\u0442\u043E\u0440 \u0441\u0430\u0431\u0440\u043E\u043B\u0438", children: [_jsx(RoleEditor, { role: editing, catalog: snapshot.catalog, common: snapshot.config.common, system: snapshot.systemRequired, skills: snapshot.skills, subroles: roles, onCancel: () => setEditing(undefined), onSave: async (role) => {
|
|
414
439
|
const ok = await mutate(() => editing === null
|
|
415
440
|
? props.api.createSubrole(props.token, role)
|
|
416
441
|
: props.api.updateSubrole(props.token, editing.id, role));
|
|
417
442
|
if (ok)
|
|
418
443
|
setEditing(undefined);
|
|
419
|
-
} }), error === undefined ? null : (_jsx("div", { className: "dsh-qa-admin__error", children: error }))] }));
|
|
444
|
+
} }), error === undefined ? null : (_jsx("div", { className: "dsh-qa-admin__error", "data-testid": "qa-admin-error", children: error }))] }));
|
|
420
445
|
}
|
|
421
446
|
if (editingSkill !== undefined) {
|
|
422
|
-
return (_jsxs("main", { className: "dsh-qa-admin", "aria-label": "\u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043D\u0430\u0432\u044B\u043A\u0430", children: [_jsx(SkillAssignmentEditor, { skill: editingSkill, roles: enabledRoles, onCancel: () => setEditingSkill(undefined), onSave: async (override) => {
|
|
447
|
+
return (_jsxs("main", { className: "dsh-qa-admin", "data-testid": "qa-admin-root", "aria-label": "\u041D\u0430\u0437\u043D\u0430\u0447\u0435\u043D\u0438\u044F \u043D\u0430\u0432\u044B\u043A\u0430", children: [_jsx(SkillAssignmentEditor, { skill: editingSkill, roles: enabledRoles, onCancel: () => setEditingSkill(undefined), onSave: async (override) => {
|
|
423
448
|
const ok = await mutate(() => props.api.updateSkillOverride(props.token, override));
|
|
424
449
|
if (ok)
|
|
425
450
|
setEditingSkill(undefined);
|
|
426
|
-
} }), error === undefined ? null : (_jsx("div", { className: "dsh-qa-admin__error", children: error }))] }));
|
|
451
|
+
} }), error === undefined ? null : (_jsx("div", { className: "dsh-qa-admin__error", "data-testid": "qa-admin-error", children: error }))] }));
|
|
427
452
|
}
|
|
428
|
-
return (_jsxs("main", { className: "dsh-qa-admin", "aria-label": "\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 QA", children: [_jsxs("header", { className: "dsh-qa-admin__header", children: [_jsxs("div", { children: [_jsx("strong", { children: "QA Administration" }), _jsx("span", { children: "\u0420\u043E\u043B\u0438 \u0438 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438" })] }), _jsx("button", { type: "button", onClick: () => window.history.pushState(null, "", props.routePath), children: "\u2190 \u0412 \u0447\u0430\u0442" })] }), _jsxs("div", { className: "dsh-qa-admin__layout", children: [_jsx("nav", { "aria-label": "\u0420\u0430\u0437\u0434\u0435\u043B\u044B \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F", children: ["QA Admin", "Пользователи", "Доступ", "Качество", "Система"].map((group) => {
|
|
453
|
+
return (_jsxs("main", { className: "dsh-qa-admin", "data-testid": "qa-admin-root", "aria-label": "\u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u0435 QA", children: [_jsxs("header", { className: "dsh-qa-admin__header", "data-testid": "qa-admin-header", children: [_jsxs("div", { children: [_jsx("strong", { children: "QA Administration" }), _jsx("span", { children: "\u0420\u043E\u043B\u0438 \u0438 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438" })] }), _jsx("button", { type: "button", "data-testid": "qa-admin-back-to-chat", onClick: () => window.history.pushState(null, "", props.routePath), children: "\u2190 \u0412 \u0447\u0430\u0442" })] }), _jsxs("div", { className: "dsh-qa-admin__layout", children: [_jsx("nav", { "data-testid": "qa-admin-nav", "aria-label": "\u0420\u0430\u0437\u0434\u0435\u043B\u044B \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0438\u0440\u043E\u0432\u0430\u043D\u0438\u044F", children: ["QA Admin", "Пользователи", "Доступ", "Качество", "Система"].map((group) => {
|
|
429
454
|
const entries = NAV.filter((entry) => entry.group === group && canOpen(props.role, entry.page));
|
|
430
455
|
if (entries.length === 0)
|
|
431
456
|
return null;
|
|
432
|
-
return (_jsxs("div", { className: "dsh-qa-admin__nav-group", children: [_jsx("strong", { children: group }), entries.map((entry) => (_jsx("button", { type: "button", "aria-current": isCurrentEntry(route, entry.page) ? "page" : undefined, onClick: () => navigate({
|
|
457
|
+
return (_jsxs("div", { className: "dsh-qa-admin__nav-group", "data-testid": "qa-admin-nav-group", children: [_jsx("strong", { children: group }), entries.map((entry) => (_jsx("button", { type: "button", "data-testid": `qa-admin-nav-${entry.page}`, "aria-current": isCurrentEntry(route, entry.page) ? "page" : undefined, onClick: () => navigate({
|
|
433
458
|
page: entry.page,
|
|
434
459
|
}), children: entry.label }, entry.page)))] }, group));
|
|
435
|
-
}) }), _jsxs("section", { className: "dsh-qa-admin__content", children: [error === undefined ? null : (_jsx("div", { className: "dsh-qa-admin__error", children: error })), adminApi !== undefined && page === "overview" ? (_jsx(AdminOverview, { api: adminApi, token: props.token, onOpenConversation: (conversationId, messageId) => navigate({
|
|
460
|
+
}) }), _jsxs("section", { className: "dsh-qa-admin__content", "data-testid": "qa-admin-content", children: [error === undefined ? null : (_jsx("div", { className: "dsh-qa-admin__error", "data-testid": "qa-admin-error", children: error })), adminApi !== undefined && page === "overview" ? (_jsx(AdminOverview, { api: adminApi, token: props.token, onOpenConversation: (conversationId, messageId) => navigate({
|
|
436
461
|
page: "conversation",
|
|
437
462
|
conversationId,
|
|
438
463
|
...(messageId === undefined ? {} : { messageId }),
|
|
@@ -451,12 +476,12 @@ export function QaAdmin(props) {
|
|
|
451
476
|
page: "conversation",
|
|
452
477
|
conversationId,
|
|
453
478
|
...(messageId === undefined ? {} : { messageId }),
|
|
454
|
-
}) })) : adminApi !== undefined && page === "quality" ? (_jsx(AdminQuality, { api: adminApi, token: props.token })) : adminApi !== undefined && page === "audit" ? (_jsx(AdminAudit, { api: adminApi, token: props.token })) : page === "subroles" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-qa-admin__title-row", children: [_jsxs("div", { children: [_jsx("h1", { children: "\u0421\u0430\u0431\u0440\u043E\u043B\u0438" }), _jsx("p", { children: "\u041F\u0440\u043E\u0444\u0438\u043B\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u044E\u0442 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0430\u0433\u0435\u043D\u0442\u0430, \u043D\u043E \u043D\u0435 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F." })] }), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", onClick: () => setEditing(null), children: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u0430\u0431\u0440\u043E\u043B\u044C" })] }), _jsx("div", { className: "dsh-qa-role-grid", children: roles.map((role) => (_jsxs("article", { className: "dsh-qa-role-card", children: [_jsxs("div", { className: "dsh-qa-role-card__head", children: [_jsx("span", { children: role.ui?.icon ?? "◇" }), _jsxs("div", { children: [_jsx("h2", { children: role.name }), _jsx("code", { children: role.id })] }), _jsx("em", { children: role.enabled ? "Включена" : "Выключена" })] }), _jsx("p", { children: role.description ?? "Без описания" }), _jsxs("div", { className: "dsh-qa-role-card__counts", children: [_jsxs("span", { children: [role.capabilities.tools.always.length, " \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432"] }), _jsxs("span", { children: ["+", role.capabilities.tools.skillGrantable.length, " \u043F\u043E \u043D\u0430\u0432\u044B\u043A\u0430\u043C"] }), _jsxs("span", { children: [(role.capabilities.tools.deny ?? []).length, " \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u043E"] }), _jsxs("span", { children: [role.capabilities.skills.length, " \u043D\u0430\u0432\u044B\u043A\u043E\u0432"] }), _jsxs("span", { children: ["+", " ", snapshot.config.common.tools.always.length +
|
|
479
|
+
}) })) : adminApi !== undefined && page === "quality" ? (_jsx(AdminQuality, { api: adminApi, token: props.token })) : adminApi !== undefined && page === "audit" ? (_jsx(AdminAudit, { api: adminApi, token: props.token })) : page === "subroles" ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "dsh-qa-admin__title-row", children: [_jsxs("div", { children: [_jsx("h1", { children: "\u0421\u0430\u0431\u0440\u043E\u043B\u0438" }), _jsx("p", { children: "\u041F\u0440\u043E\u0444\u0438\u043B\u0438 \u043E\u043F\u0440\u0435\u0434\u0435\u043B\u044F\u044E\u0442 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0430\u0433\u0435\u043D\u0442\u0430, \u043D\u043E \u043D\u0435 \u0430\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043D\u044B\u0435 \u043F\u0440\u0430\u0432\u0430 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u044F." })] }), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", "data-testid": "qa-admin-subrole-create", onClick: () => setEditing(null), children: "\u0421\u043E\u0437\u0434\u0430\u0442\u044C \u0441\u0430\u0431\u0440\u043E\u043B\u044C" })] }), _jsx("div", { className: "dsh-qa-role-grid", "data-testid": "qa-admin-role-grid", children: roles.map((role) => (_jsxs("article", { className: "dsh-qa-role-card", "data-testid": "qa-admin-role-card", children: [_jsxs("div", { className: "dsh-qa-role-card__head", children: [_jsx("span", { children: role.ui?.icon ?? "◇" }), _jsxs("div", { children: [_jsx("h2", { children: role.name }), _jsx("code", { children: role.id })] }), _jsx("em", { "data-testid": "qa-admin-role-state", children: role.enabled ? "Включена" : "Выключена" })] }), _jsx("p", { children: role.description ?? "Без описания" }), _jsxs("div", { className: "dsh-qa-role-card__counts", "data-testid": "qa-admin-role-counts", children: [_jsxs("span", { "data-testid": "qa-admin-role-count-tools", children: [role.capabilities.tools.always.length, " \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u043E\u0432"] }), _jsxs("span", { "data-testid": "qa-admin-role-count-grantable", children: ["+", role.capabilities.tools.skillGrantable.length, " \u043F\u043E \u043D\u0430\u0432\u044B\u043A\u0430\u043C"] }), _jsxs("span", { "data-testid": "qa-admin-role-count-denied", children: [(role.capabilities.tools.deny ?? []).length, " \u0437\u0430\u043F\u0440\u0435\u0449\u0435\u043D\u043E"] }), _jsxs("span", { "data-testid": "qa-admin-role-count-skills", children: [role.capabilities.skills.length, " \u043D\u0430\u0432\u044B\u043A\u043E\u0432"] }), _jsxs("span", { "data-testid": "qa-admin-role-count-common", children: ["+", " ", snapshot.config.common.tools.always.length +
|
|
455
480
|
snapshot.config.common.tools.skillGrantable.length +
|
|
456
|
-
snapshot.config.common.skills.length, " ", "\u043E\u0431\u0449\u0438\u0445"] })] }), _jsxs("div", { className: "dsh-qa-role-card__actions", children: [_jsx("button", { type: "button", onClick: () => props.onPreview(role), children: "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C" }), _jsx("button", { type: "button", onClick: () => setEditing(role), children: "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u2192" }), _jsx("button", { type: "button", onClick: () => void mutate(() => props.api.updateSubrole(props.token, role.id, {
|
|
481
|
+
snapshot.config.common.skills.length, " ", "\u043E\u0431\u0449\u0438\u0445"] })] }), _jsxs("div", { className: "dsh-qa-role-card__actions", "data-testid": "qa-admin-role-actions", children: [_jsx("button", { type: "button", "data-testid": "qa-admin-role-preview", onClick: () => props.onPreview(role), children: "\u041F\u0440\u043E\u0441\u043C\u043E\u0442\u0440\u0435\u0442\u044C" }), _jsx("button", { type: "button", "data-testid": "qa-admin-role-edit", onClick: () => setEditing(role), children: "\u0418\u0437\u043C\u0435\u043D\u0438\u0442\u044C \u2192" }), _jsx("button", { type: "button", "data-testid": "qa-admin-role-toggle", onClick: () => void mutate(() => props.api.updateSubrole(props.token, role.id, {
|
|
457
482
|
...role,
|
|
458
483
|
enabled: !role.enabled,
|
|
459
|
-
})), children: role.enabled ? "Выключить" : "Включить" }), _jsx("button", { type: "button", onClick: () => {
|
|
484
|
+
})), children: role.enabled ? "Выключить" : "Включить" }), _jsx("button", { type: "button", "data-testid": "qa-admin-role-duplicate", onClick: () => {
|
|
460
485
|
const ids = new Set(roles.map(({ id }) => id));
|
|
461
486
|
let id = `${role.id}-copy`;
|
|
462
487
|
let index = 2;
|
|
@@ -467,13 +492,13 @@ export function QaAdmin(props) {
|
|
|
467
492
|
id,
|
|
468
493
|
name: `${role.name} — копия`,
|
|
469
494
|
}));
|
|
470
|
-
}, children: "\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C" }), _jsx("button", { type: "button", className: "dsh-qa-admin__danger", disabled: roles.length <= 1, onClick: () => {
|
|
495
|
+
}, children: "\u0414\u0443\u0431\u043B\u0438\u0440\u043E\u0432\u0430\u0442\u044C" }), _jsx("button", { type: "button", className: "dsh-qa-admin__danger", "data-testid": "qa-admin-role-delete", disabled: roles.length <= 1, onClick: () => {
|
|
471
496
|
if (!window.confirm(`Удалить саброль «${role.name}»?`))
|
|
472
497
|
return;
|
|
473
498
|
const replacement = enabledRoles.find(({ id }) => id !== role.id)?.id ??
|
|
474
499
|
null;
|
|
475
500
|
void mutate(() => props.api.deleteSubrole(props.token, role.id, replacement));
|
|
476
|
-
}, children: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C" })] })] }, role.id))) })] })) : adminApi !== undefined && page === "skill-files" ? (_jsx(AdminSkillFiles, { api: adminApi, token: props.token })) : page === "skills" ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("h1", { children: "\u041D\u0430\u0432\u044B\u043A\u0438" }), _jsx("p", { children: "SKILL.md \u0441\u0430\u043C \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442 \u0441\u0432\u043E\u044E \u0430\u0443\u0434\u0438\u0442\u043E\u0440\u0438\u044E \u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B. \u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u043C\u043E\u0436\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F, \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u044F \u0444\u0430\u0439\u043B \u043D\u0430\u0432\u044B\u043A\u0430." })] }) }), _jsx(SkillTable, { skills: snapshot.skills, roles: enabledRoles, onSelect: setEditingSkill })] })) : page === "common" ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("h1", { children: "\u041E\u0431\u0449\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438" }), _jsx("p", { children: "\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0437\u0434\u0435\u0441\u044C \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u043A\u0430\u0436\u0434\u043E\u0439 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u043E\u0439 QA-\u0441\u0430\u0431\u0440\u043E\u043B\u0438." })] }) }), _jsxs("div", { className: "dsh-qa-admin__tabs", children: [_jsx("button", { type: "button", "aria-current": commonType === "tool" ? "page" : undefined, onClick: () => setCommonType("tool"), children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B" }), _jsx("button", { type: "button", "aria-current": commonType === "skill" ? "page" : undefined, onClick: () => setCommonType("skill"), children: "\u041D\u0430\u0432\u044B\u043A\u0438" })] }), commonType === "tool" ? (_jsxs("div", { className: "dsh-qa-admin__tabs", children: [_jsx("button", { type: "button", "aria-current": commonToolBucket === "always" ? "page" : undefined, onClick: () => setCommonToolBucket("always"), children: TOOL_BUCKET_LABELS.always }), _jsx("button", { type: "button", "aria-current": commonToolBucket === "skillGrantable" ? "page" : undefined, onClick: () => setCommonToolBucket("skillGrantable"), children: TOOL_BUCKET_LABELS.skillGrantable }), _jsx("button", { type: "button", "aria-current": commonToolBucket === "deny" ? "page" : undefined, onClick: () => setCommonToolBucket("deny"), children: TOOL_BUCKET_LABELS.deny })] })) : null, _jsx(CapabilityPicker, { type: commonType, catalog: snapshot.catalog, skillDetails: snapshot.skills, selected: commonType === "tool"
|
|
501
|
+
}, children: "\u0423\u0434\u0430\u043B\u0438\u0442\u044C" })] })] }, role.id))) })] })) : adminApi !== undefined && page === "skill-files" ? (_jsx(AdminSkillFiles, { api: adminApi, token: props.token })) : adminApi !== undefined && page === "memory" ? (_jsx(AdminExpertMemory, { api: adminApi, token: props.token, canManage: canManageMemory(props.role) })) : page === "skills" ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("h1", { children: "\u041D\u0430\u0432\u044B\u043A\u0438" }), _jsx("p", { children: "SKILL.md \u0441\u0430\u043C \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442 \u0441\u0432\u043E\u044E \u0430\u0443\u0434\u0438\u0442\u043E\u0440\u0438\u044E \u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u044B\u0435 \u0438\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B. \u0410\u0434\u043C\u0438\u043D\u0438\u0441\u0442\u0440\u0430\u0442\u043E\u0440 \u043C\u043E\u0436\u0435\u0442 \u0440\u0430\u0441\u0448\u0438\u0440\u0438\u0442\u044C \u0438\u043B\u0438 \u043E\u0442\u043E\u0437\u0432\u0430\u0442\u044C \u0434\u043E\u0441\u0442\u0443\u043F, \u043D\u0435 \u0438\u0437\u043C\u0435\u043D\u044F\u044F \u0444\u0430\u0439\u043B \u043D\u0430\u0432\u044B\u043A\u0430." })] }) }), _jsx(SkillTable, { skills: snapshot.skills, roles: enabledRoles, onSelect: setEditingSkill })] })) : page === "common" ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "dsh-qa-admin__title-row", children: _jsxs("div", { children: [_jsx("h1", { children: "\u041E\u0431\u0449\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438" }), _jsx("p", { children: "\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u044B\u0435 \u0437\u0434\u0435\u0441\u044C \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u043D\u044B \u043A\u0430\u0436\u0434\u043E\u0439 \u0432\u043A\u043B\u044E\u0447\u0451\u043D\u043D\u043E\u0439 QA-\u0441\u0430\u0431\u0440\u043E\u043B\u0438." })] }) }), _jsxs("div", { className: "dsh-qa-admin__tabs", "data-testid": "qa-admin-common-tabs", children: [_jsx("button", { type: "button", "data-testid": "qa-admin-common-tab-tool", "aria-current": commonType === "tool" ? "page" : undefined, onClick: () => setCommonType("tool"), children: "\u0418\u043D\u0441\u0442\u0440\u0443\u043C\u0435\u043D\u0442\u044B" }), _jsx("button", { type: "button", "data-testid": "qa-admin-common-tab-skill", "aria-current": commonType === "skill" ? "page" : undefined, onClick: () => setCommonType("skill"), children: "\u041D\u0430\u0432\u044B\u043A\u0438" })] }), commonType === "tool" ? (_jsxs("div", { className: "dsh-qa-admin__tabs", "data-testid": "qa-admin-common-bucket-tabs", children: [_jsx("button", { type: "button", "data-testid": "qa-admin-common-bucket-always", "aria-current": commonToolBucket === "always" ? "page" : undefined, onClick: () => setCommonToolBucket("always"), children: TOOL_BUCKET_LABELS.always }), _jsx("button", { type: "button", "data-testid": "qa-admin-common-bucket-skill-grantable", "aria-current": commonToolBucket === "skillGrantable" ? "page" : undefined, onClick: () => setCommonToolBucket("skillGrantable"), children: TOOL_BUCKET_LABELS.skillGrantable }), _jsx("button", { type: "button", "data-testid": "qa-admin-common-bucket-deny", "aria-current": commonToolBucket === "deny" ? "page" : undefined, onClick: () => setCommonToolBucket("deny"), children: TOOL_BUCKET_LABELS.deny })] })) : null, _jsx(CapabilityPicker, { type: commonType, testId: "qa-admin-common-capabilities", catalog: snapshot.catalog, skillDetails: snapshot.skills, selected: commonType === "tool"
|
|
477
502
|
? bucketOf(common, commonToolBucket)
|
|
478
503
|
: common.skills, onChange: (values) => setCommon(commonType === "tool"
|
|
479
504
|
? {
|
|
@@ -483,6 +508,6 @@ export function QaAdmin(props) {
|
|
|
483
508
|
[commonToolBucket]: values,
|
|
484
509
|
},
|
|
485
510
|
}
|
|
486
|
-
: { ...common, skills: values }) }), _jsxs("div", { className: "dsh-qa-admin__impact", children: ["\u26A0 \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0437\u0430\u0442\u0440\u043E\u043D\u0435\u0442 ", enabledRoles.length, " \u0441\u0430\u0431\u0440\u043E\u043B\u0435\u0439 \u0438", " ", snapshot.users.filter(({ disabled }) => !disabled).length, " ", "\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u041E\u043D\u043E \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043A \u043D\u043E\u0432\u044B\u043C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430\u043C."] }), _jsxs("div", { className: "dsh-qa-admin__savebar", children: [_jsx("span", {}), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", onClick: () => void mutate(() => props.api.updateCommon(props.token, common)), children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0431\u0449\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438" })] })] })) : (_jsx("p", { className: "dsh-qa-admin__empty", children: "\u0420\u0430\u0437\u0434\u0435\u043B \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D." }))] })] })] }));
|
|
511
|
+
: { ...common, skills: values }) }), _jsxs("div", { className: "dsh-qa-admin__impact", "data-testid": "qa-admin-common-impact", children: ["\u26A0 \u0418\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0437\u0430\u0442\u0440\u043E\u043D\u0435\u0442 ", enabledRoles.length, " \u0441\u0430\u0431\u0440\u043E\u043B\u0435\u0439 \u0438", " ", snapshot.users.filter(({ disabled }) => !disabled).length, " ", "\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u0439. \u041E\u043D\u043E \u043F\u0440\u0438\u043C\u0435\u043D\u044F\u0435\u0442\u0441\u044F \u0442\u043E\u043B\u044C\u043A\u043E \u043A \u043D\u043E\u0432\u044B\u043C \u0440\u0430\u0437\u0433\u043E\u0432\u043E\u0440\u0430\u043C."] }), _jsxs("div", { className: "dsh-qa-admin__savebar", "data-testid": "qa-admin-common-savebar", children: [_jsx("span", {}), _jsx("button", { type: "button", className: "dsh-qa-admin__primary", "data-testid": "qa-admin-common-save", onClick: () => void mutate(() => props.api.updateCommon(props.token, common)), children: "\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u043E\u0431\u0449\u0438\u0435 \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E\u0441\u0442\u0438" })] })] })) : (_jsx("p", { className: "dsh-qa-admin__empty", "data-testid": "qa-admin-section-unavailable", children: "\u0420\u0430\u0437\u0434\u0435\u043B \u043D\u0435\u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D." }))] })] })] }));
|
|
487
512
|
}
|
|
488
513
|
//# sourceMappingURL=QaAdmin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QaAdmin.js","sourceRoot":"","sources":["../../../src/client/admin/QaAdmin.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAalE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAqB,MAAM,aAAa,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EACL,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAU/D,MAAM,kBAAkB,GAA+B;IACrD,MAAM,EAAE,iBAAiB;IACzB,cAAc,EAAE,uBAAuB;IACvC,IAAI,EAAE,aAAa;CACpB,CAAC;AAEF;;;;GAIG;AACH,MAAM,GAAG,GAYH;IACJ;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,OAAO;QACd,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,wBAAwB;KACrC;IACD;QACE,IAAI,EAAE,OAAO;QACb,KAAK,EAAE,cAAc;QACrB,KAAK,EAAE,cAAc;QACrB,UAAU,EAAE,YAAY;KACzB;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,SAAS;QAChB,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,YAAY;KACzB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,mBAAmB;QAC1B,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,YAAY;KACzB;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,QAAQ;QACf,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,YAAY;KACzB;IACD;QACE,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,kBAAkB;QACzB,KAAK,EAAE,QAAQ;QACf,UAAU,EAAE,eAAe;KAC5B;IACD;QACE,IAAI,EAAE,eAAe;QACrB,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,wBAAwB;KACrC;IACD;QACE,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,iBAAiB;QACxB,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,cAAc;KAC3B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,KAAK,EAAE,gBAAgB;QACvB,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,cAAc;KAC3B;IACD;QACE,IAAI,EAAE,SAAS;QACf,KAAK,EAAE,WAAW;QAClB,KAAK,EAAE,UAAU;QACjB,UAAU,EAAE,gBAAgB;KAC7B;IACD,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE;CAC9E,CAAC;AAEF,gFAAgF;AAChF,MAAM,aAAa,GAAG,IAAI,GAAG,CAAO;IAClC,UAAU;IACV,OAAO;IACP,MAAM;IACN,aAAa;IACb,eAAe;IACf,cAAc;IACd,QAAQ;IACR,UAAU;IACV,SAAS;IACT,OAAO;CACR,CAAC,CAAC;AAEH,6DAA6D;AAC7D,MAAM,mBAAmB,GAAG,IAAI,GAAG,CACjC,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CACnD,CAAC;AAEF,iFAAiF;AACjF,SAAS,OAAO,CAAC,IAA+B,EAAE,IAAU;IAC1D,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IACpC,MAAM,UAAU,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,IAAI,CAAC;IAC1C,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IAClC,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QACxB,OAAO,CACL,UAAU,KAAK,wBAAwB;YACvC,UAAU,KAAK,cAAc;YAC7B,UAAU,KAAK,gBAAgB,CAChC,CAAC;IACJ,CAAC;IACD,iEAAiE;IACjE,4CAA4C;IAC5C,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,IAA+B;IAC5D,OAAO,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,CAAC;AAChD,CAAC;AAED,gEAAgE;AAChE,SAAS,cAAc,CAAC,KAAmB,EAAE,IAAU;IACrD,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAI,KAAK,OAAO,CAAC;IACnD,IAAI,KAAK,CAAC,IAAI,KAAK,cAAc;QAAE,OAAO,IAAI,KAAK,eAAe,CAAC;IACnE,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,aAAa,GAAkC;IACnD,OAAO,EAAE,WAAW;IACpB,QAAQ,EAAE,WAAW;IACrB,OAAO,EAAE,cAAc;IACvB,UAAU,EAAE,aAAa;CAC1B,CAAC;AAEF,MAAM,aAAa,GAA2C;IAC5D,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;IAChB,GAAG,EAAE,KAAK;IACV,UAAU,EAAE,MAAM;IAClB,OAAO,EAAE,SAAS;CACnB,CAAC;AAEF,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;QACtE,OAAO,MAAM,CAAE,KAAwC,CAAC,OAAO,IAAI,KAAK,CAAC,CAAC;IAC5E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED,SAAS,MAAM,CAAC,MAAyB;IACvC,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,QAAQ,CACf,SAAgC,EAChC,MAAkB;IAElB,IAAI,MAAM,KAAK,MAAM;QAAE,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;IACzD,OAAO,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,gBAAgB,CAAC,KAQzB;IACC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACvC,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAC/B,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CACtB,IAAI,KAAK,KAAK,CAAC,IAAI;QACnB,CAAC,CAAC,YAAY;YACZ,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAChB,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC;YACjB,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC,KAAK,KAAK,EAAE;YACX,GAAG,EAAE,IAAI,KAAK,EAAE;iBACb,iBAAiB,EAAE;iBACnB,QAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAC5C,CAAC;IACF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAoC,CAAC;IAC3D,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,MAAM,KAAK,GACT,GAAG,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;YAC3B,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI;YACjB,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,MAAM,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACzD,CAAC;IACD,OAAO,CACL,eAAK,SAAS,EAAC,qBAAqB,aAClC,eAAK,SAAS,EAAC,8BAA8B,aAC3C,gBACE,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,KAAK,EACZ,WAAW,EACT,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,gBAAgB,EAElE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,GACxD,EACF,4BACE,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GACjE,mGAEI,IACJ,EACL,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACnB,YAAG,SAAS,EAAC,qBAAqB,8GAAuB,CAC1D,CAAC,CAAC,CAAC,CACF,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CACpC,mBAAqB,SAAS,EAAC,4BAA4B,aACzD,uBAAK,KAAK,CAAC,iBAAiB,EAAE,GAAM,EACnC,OAAO,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;wBAC1B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBAC5C,MAAM,OAAO,GAAG,QAAQ,IAAI,MAAM,IAAI,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wBAClE,MAAM,KAAK,GAAG,KAAK,CAAC,YAAY,EAAE,IAAI,CACpC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CACrC,CAAC;wBACF,OAAO,CACL,iBAEE,SAAS,EAAC,mBAAmB,EAC7B,KAAK,EACH,QAAQ;gCACN,CAAC,CAAC,uBAAuB;gCACzB,CAAC,CAAC,MAAM;oCACN,CAAC,CAAC,kCAAkC;oCACpC,CAAC,CAAC,SAAS,aAGjB,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,OAAO,EAChB,QAAQ,EACN,QAAQ,IAAI,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAEpD,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;wCAClB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,QAAQ,CAAC,CAAC;wCAC/B,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO;4CAAE,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;;4CACpD,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;wCAChC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oCAC9B,CAAC,GACD,EACF,gBAAM,SAAS,EAAC,yBAAyB,aACvC,2BAAS,UAAU,CAAC,KAAK,GAAU,EAClC,UAAU,CAAC,WAAW,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC7C,0BAAQ,UAAU,CAAC,WAAW,GAAS,CACxC,EACA,UAAU,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAC7B,8BACE,yCACY,GAAG,EACZ,UAAU,CAAC,MAAM,CAAC,IAAI,IAAI,UAAU,CAAC,MAAM,CAAC,IAAI,EAChD,UAAU,CAAC,cAAc,KAAK,KAAK;4DAClC,CAAC,CAAC,mBAAmB;4DACrB,CAAC,CAAC,oBAAoB,IAClB,EACP,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,0BACG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;wDAC1C,CAAC,CAAC,uBAAuB;wDACzB,CAAC,CAAC,yBAAyB,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAClE,CACT,IACA,CACJ,CAAC,CAAC,CAAC,IAAI,IACH,EACN,QAAQ,CAAC,CAAC,CAAC,CACV,kFAAkB,CACnB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CACX,0DAAc,CACf,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,KAAK,OAAO;oCAC7B,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAC9B,0GAAsB,CACvB,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CACjC,aAAI,SAAS,EAAC,4BAA4B,0FAErC,CACN,CAAC,CAAC,CAAC,IAAI,KA3DH,GAAG,UAAU,CAAC,IAAI,IAAI,UAAU,CAAC,EAAE,EAAE,CA4DpC,CACT,CAAC;oBACJ,CAAC,CAAC,KAzEU,KAAK,CA0ET,CACX,CAAC,CACH,IACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,cAAc;IACrB,OAAO,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACnE,CAAC;AAED,SAAS,SAAS;IAChB,OAAO;QACL,EAAE,EAAE,EAAE;QACN,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,EAAE;QACf,OAAO,EAAE,IAAI;QACb,YAAY,EAAE,cAAc,EAAE;KAC/B,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,SAAS,aAAa,CACpB,KAKC,EACD,MAAc;IAEd,4EAA4E;IAC5E,0EAA0E;IAC1E,MAAM,MAAM,GAAG,MAAM,CAAC;QACpB,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;QAClC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC;KACjC,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,WAAW,GAAG,MAAM,CAAC;QACzB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;QAC5B,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM;QAC5B,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM;KAC3B,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,SAAS,GAAG,MAAM,CAAC;QACvB,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc;QACpC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,cAAc;KACnC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAoB,CAAC;IACxC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAClE,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,KAAK,CAAC,OAAO;YAAE,SAAS;QACpD,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;YACxC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACxD,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC;QACrB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM;QACtB,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM;QACtB,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM;KACrB,CAAC,CAAC;IACH,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM;SAC1B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAChB,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,QAAQ,CAAC,CAC1E;SACA,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpE,CAAC;AAED,SAAS,UAAU,CAAC,KASnB;IACC,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC;IACrC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,KAAK,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC,CAAC;IACzE,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAC5B,SAAS,CACV,CAAC;IACF,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,CAAC,MAAyB,EAAE,EAAE,CAC9C,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrB,GAAG,OAAO;QACV,YAAY,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE;KAC1D,CAAC,CAAC,CAAC;IACN,MAAM,QAAQ,GAAG,CAAC,MAAkB,EAAE,MAAyB,EAAE,EAAE,CACjE,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QACrB,GAAG,OAAO;QACV,YAAY,EAAE;YACZ,GAAG,OAAO,CAAC,YAAY;YACvB,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE;SAC3D;KACF,CAAC,CAAC,CAAC;IACN,MAAM,SAAS,GAAG,aAAa,CAC7B;QACE,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,IAAI,EAAE,KAAK,CAAC,YAAY;QACxB,MAAM,EAAE,KAAK,CAAC,MAAM;KACrB,EACD,KAAK,CAAC,EAAE,CACT,CAAC;IACF,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CACtD,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAClC,CAAC;IACF,OAAO,CACL,mBAAS,SAAS,EAAC,oBAAoB,aACrC,cAAK,SAAS,EAAC,yBAAyB,YACtC,0BACE,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,KAAK,CAAC,QAAQ,kEAGhB,EACT,uBAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,GAAM,EAClD,sBAAI,KAAK,CAAC,WAAW,IAAI,oCAAoC,GAAK,IAC9D,GACF,EACN,cAAK,SAAS,EAAC,oBAAoB,YAE/B;oBACE,CAAC,SAAS,EAAE,OAAO,CAAC;oBACpB,CAAC,OAAO,EAAE,aAAa,CAAC;oBACxB,CAAC,QAAQ,EAAE,QAAQ,CAAC;oBACpB,CAAC,WAAW,EAAE,oBAAoB,CAAC;iBAEtC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CACrB,iBAEE,IAAI,EAAC,QAAQ,kBACC,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC7C,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,YAExB,KAAK,IALD,EAAE,CAMA,CACV,CAAC,GACE,EACL,GAAG,KAAK,SAAS,CAAC,CAAC,CAAC,CACnB,eAAK,SAAS,EAAC,6BAA6B,aAC1C,gFAEE,gBACE,KAAK,EAAE,KAAK,CAAC,IAAI,EACjB,SAAS,EAAE,GAAG,EACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAEzD,IACI,EACR,yCAEE,gBACE,KAAK,EAAE,KAAK,CAAC,EAAE,EACf,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAC,oBAAoB,EAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAEvD,IACI,EACR,iBAAO,SAAS,EAAC,0BAA0B,iEAEzC,mBACE,KAAK,EAAE,KAAK,CAAC,WAAW,IAAI,EAAE,EAC9B,SAAS,EAAE,GAAG,EACd,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,GAEhE,IACI,EACR,iBAAO,SAAS,EAAC,2BAA2B,aAC1C,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAClB,QAAQ,CAAC,EAAE,GAAG,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC,GAE9D,wDAEI,IACJ,CACP,CAAC,CAAC,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,CACpB,eAAK,SAAS,EAAC,qBAAqB,aAClC,8BACE,uBAAK,kBAAkB,CAAC,MAAM,GAAM,EACpC,iOAA6C,EAC7C,KAAC,gBAAgB,IACf,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EACpC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EACjC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,EACzC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,GAChD,IACM,EACV,8BACE,uBAAK,kBAAkB,CAAC,cAAc,GAAM,EAC5C,iuBAII,EACJ,KAAC,gBAAgB,IACf,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAC5C,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EACzC,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,EACjD,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC,GACxD,EACD,SAAS,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACjC,eAAK,SAAS,EAAC,qBAAqB,aAClC,gMAAsC,EACtC,uBACG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAC1C,yBACE,yBAAO,IAAI,GAAQ,EACnB,gHAAuB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAQ,KAFzC,IAAI,CAGR,CACN,CAAC,GACC,IACD,CACP,IACO,EACV,8BACE,uBAAK,kBAAkB,CAAC,IAAI,GAAM,EAClC,qiCAKI,EACJ,KAAC,gBAAgB,IACf,IAAI,EAAC,MAAM,EACX,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,EAC7C,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9C,IACM,IACN,CACP,CAAC,CAAC,CAAC,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,CACrB,eAAK,SAAS,EAAC,oBAAoB,aACjC,ynBAGI,EACJ,8BACE,mIAA2B,EAC1B,cAAc,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC7B,YAAG,SAAS,EAAC,qBAAqB,wNAE9B,CACL,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,mBAAmB,YAC9B,cAAc,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC7B,yBACE,2BAAS,KAAK,CAAC,IAAI,GAAU,EAC7B,yBACG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;gDAC1C,CAAC,CAAC,uBAAuB;gDACzB,CAAC,CAAC,yBAAyB,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GACnE,EACP,6HAA0B,KAPnB,KAAK,CAAC,IAAI,CAQd,CACN,CAAC,GACC,CACN,EACD,YAAG,SAAS,EAAC,0BAA0B,kTAEnC,IACI,EACV,8BACE,iJAA+B,EAC/B,KAAC,gBAAgB,IACf,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAC9B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAC3B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC,MAAM,EACnC,YAAY,EAAE,KAAK,CAAC,MAAM,EAC1B,QAAQ,EAAE,SAAS,GACnB,IACM,IACN,CACP,CAAC,CAAC,CAAC,CACF,eAAK,SAAS,EAAC,kBAAkB,aAC/B,wJAC0B,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,IAAI,YAAY,IAC3D,EACL,8BACE,uBAAK,kBAAkB,CAAC,MAAM,GAAM,EACnC,SAAS,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CACpC,YAAG,SAAS,EAAC,qBAAqB,6GAAsB,CACzD,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,wBAAwB,YACnC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnC,uBACE,yBAAO,IAAI,GAAQ,IADZ,IAAI,CAER,CACN,CAAC,GACC,CACN,IACO,EACV,8BACE,uBAAK,kBAAkB,CAAC,cAAc,GAAM,EAC3C,SAAS,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAClC,YAAG,SAAS,EAAC,qBAAqB,0MAE9B,CACL,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,wBAAwB,YACnC,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACjC,yBACE,yBAAO,IAAI,GAAQ,EACnB,yBACG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,SAAS;gDACpC,CAAC,CAAC,qDAAqD;gDACvD,CAAC,CAAC,mBAAmB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,GACvD,KANA,IAAI,CAOR,CACN,CAAC,GACC,CACN,IACO,EACT,SAAS,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACtC,8BACE,uBAAK,kBAAkB,CAAC,IAAI,GAAM,EAClC,aAAI,SAAS,EAAC,wBAAwB,YACnC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,yBACE,yBAAO,IAAI,GAAQ,EACnB,iIAAgC,KAFzB,IAAI,CAGR,CACN,CAAC,GACC,IACG,CACX,EACD,8BACE,gEAAe,EACf,aAAI,SAAS,EAAC,wBAAwB,YACnC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAC7D,CAAC,KAAK,EAAE,EAAE,CAAC,CACT,yBACE,yBAAO,KAAK,GAAQ,EACpB,yBACG,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC;gDACjC,CAAC,CAAC,kBAAkB;gDACpB,CAAC,CAAC,0BAA0B,GACzB,KANA,KAAK,CAOT,CACN,CACF,GACE,IACG,IACN,CACP,EACD,eAAK,SAAS,EAAC,uBAAuB,aACpC,2PAAsD,EACtD,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,qDAEpC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,QAAQ,EACN,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,EAE9D,OAAO,EAAE,GAAG,EAAE;4BACZ,SAAS,CAAC,IAAI,CAAC,CAAC;4BAChB,KAAK,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBAC3D,CAAC,YAEA,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAC5B,IACL,IACE,CACX,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,qBAAqB,CAAC,KAK9B;IACC,MAAM,QAAQ,GAAG,IAAI,GAAG,CACtB,KAAK,CAAC,KAAK,CAAC,KAAK;SACd,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,QAAQ,CAAC;SAClC,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAC/B,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CACpC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CACrC,CAAC;IACF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IACxE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC/D,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,QAAQ,GAAG,GAA8B,EAAE;QAC/C,MAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,GAAG,EAAU,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9D,MAAM,aAAa,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACnE,MAAM,kBAAkB,GAAG,CAAC,GAAG,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACxE,OAAO;YACL,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;YAC3B,GAAG,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC;YACxD,GAAG,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,CAAC;YAClE,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,CACL,mBAAS,SAAS,EAAC,qBAAqB,aACtC,cAAK,SAAS,EAAC,yBAAyB,YACtC,0BACE,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,oBAAoB,EAC9B,OAAO,EAAE,KAAK,CAAC,QAAQ,4DAGhB,EACT,uBAAK,KAAK,CAAC,KAAK,CAAC,IAAI,GAAM,EAC3B,sBACG,KAAK,CAAC,KAAK,CAAC,WAAW;gCACtB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,SAAS;oCAC/B,CAAC,CAAC,mCAAmC;oCACrC,CAAC,CAAC,cAAc,CAAC,GACnB,IACA,GACF,EACN,eAAK,SAAS,EAAC,2BAA2B,aACxC,8BACE,gEAAe,EACf,iBAAO,SAAS,EAAC,2BAA2B,aAC1C,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,WAAW,EACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAChE,+LAEI,EACR,iBAAO,SAAS,EAAC,2BAA2B,aAC1C,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,QAAQ,EACjB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,GAC7D,oGAEI,EACR,aAAI,SAAS,EAAC,oBAAoB,YAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;oCACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,EAAE,CACnC,CAAC;oCACF,MAAM,OAAO,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;oCAClD,OAAO,CACL,yBACE,4BACE,gBACE,IAAI,EAAC,UAAU,EACf,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE;4DAClB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;4DAC9B,IAAI,KAAK,CAAC,aAAa,CAAC,OAAO;gEAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;gEAC9C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;4DAC1B,UAAU,CAAC,IAAI,CAAC,CAAC;wDACnB,CAAC,GACD,EACD,IAAI,CAAC,IAAI,IACJ,EACP,KAAK,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,6HAA0B,CAAC,CAAC,CAAC,IAAI,EAC5D,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAC9B,6HAA0B,CAC3B,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,EAAE,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAChC,uHAAyB,CAC1B,CAAC,CAAC,CAAC,IAAI,KArBD,IAAI,CAAC,EAAE,CAsBX,CACN,CAAC;gCACJ,CAAC,CAAC,GACC,EACJ,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACrD,aAAI,SAAS,EAAC,uBAAuB,YAClC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAChD,oCAAqB,OAAO,KAAnB,OAAO,CAAkB,CACnC,CAAC,GACC,CACN,IACO,EACV,8BACE,mIAA2B,EAC1B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAChC,YAAG,SAAS,EAAC,qBAAqB,iLAE9B,CACL,CAAC,CAAC,CAAC,CACF,aAAI,SAAS,EAAC,oBAAoB,YAC/B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC/B,yBACE,yBAAO,IAAI,CAAC,EAAE,GAAQ,EACtB,gBAAM,SAAS,EAAC,2BAA2B,aACxC,IAAI,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC7B,+EAAe,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAM,CACjD,CAAC,CAAC,CAAC,IAAI,EACP,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACvB,aAAI,SAAS,EAAC,4BAA4B,qFAErC,CACN,EACA,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAC5B,aAAI,SAAS,EAAC,4BAA4B,YACvC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC;wDAC9B,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM;wDACrD,CAAC,CAAC,0BAA0B;wDAC5B,CAAC,CAAC,eAAe,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAC5C,CACN,CAAC,CAAC,CAAC,IAAI,IACH,KAnBA,IAAI,CAAC,EAAE,CAoBX,CACN,CAAC,GACC,CACN,EACA,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;gCAC7B,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CACrB,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,CAC9C,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,0BAA0B,srBAInC,CACL,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CACnC,YAAG,SAAS,EAAC,0BAA0B,6UAEnC,CACL,CAAC,CAAC,CAAC,IAAI,IACA,IACN,EACN,eAAK,SAAS,EAAC,uBAAuB,aACpC,2QAAiE,EACjE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,qDAEpC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,GAAG,EAAE;4BACZ,SAAS,CAAC,IAAI,CAAC,CAAC;4BAChB,KAAK,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;wBAChE,CAAC,YAEA,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,GAC5B,IACL,IACE,CACX,CAAC;AACJ,CAAC;AAED,SAAS,UAAU,CAAC,KAInB;IACC,MAAM,IAAI,GAAG,CAAC,EAAU,EAAE,EAAE,CAC1B,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC;IACzD,OAAO,CACL,eAAK,SAAS,EAAC,eAAe,aAC5B,4BACE,0BACE,yBACE,0DAAc,EACd,kFAAkB,EAClB,8FAAoB,EACpB,kFAAkB,EAClB,4EAAiB,EACjB,cAAM,IACH,GACC,EACR,0BACG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC3B,yBACE,yBACE,2BAAS,KAAK,CAAC,IAAI,GAAU,EAC5B,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,sEAAgB,CAAC,CAAC,CAAC,IAAI,EAC1C,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,CAC5B,aAAI,SAAS,EAAC,4BAA4B,0FAAmB,CAC9D,CAAC,CAAC,CAAC,IAAI,IACL,EACL,uBACG,KAAK,CAAC,QAAQ;wCACb,CAAC,CAAC,UAAU;wCACZ,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC;4CAC5B,CAAC,CAAC,aAAa;4CACf,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GACvC,EACL,uBAAK,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,GAAM,EAChD,uBAAK,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,GAAM,EACtC,yBACG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAChC,KAAK,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS;4CAC9B,CAAC,CAAC,EAAE;4CACJ,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,IAC1B,EACL,uBACE,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,wEAEjD,GACN,KA3BE,KAAK,CAAC,IAAI,CA4Bd,CACN,CAAC,GACI,IACF,EACP,KAAK,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAC3B,YAAG,SAAS,EAAC,qBAAqB,8GAAuB,CAC1D,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,KAavB;IACC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAyB,CAAC;IAClE,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACzE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,EAAgC,CAAC;IACvE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,EAAiB,CAAC;IAElE,yEAAyE;IACzE,+DAA+D;IAC/D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAClE,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,MAAM,KAAK,GAAG,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IACzD,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;IAChC,sEAAsE;IACtE,4EAA4E;IAC5E,4DAA4D;IAC5D,MAAM,IAAI,GACR,QAAQ,KAAK,SAAS,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACrD,CAAC,CAAC,UAAU;QACZ,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC;IACjB,MAAM,QAAQ,GAAG,WAAW,CAC1B,CAAC,IAAkB,EAAE,EAAE;QACrB,MAAM,CAAC,OAAO,CAAC,SAAS,CACtB,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,EAAE,EACtB,EAAE,EACF,SAAS,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CACjC,CAAC;QACF,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC,EACD,CAAC,KAAK,CAAC,SAAS,CAAC,CAClB,CAAC;IACF,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAiB,MAAM,CAAC,CAAC;IACrE,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAC3C,QAAQ,CAAa,QAAQ,CAAC,CAAC;IACjC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAwB,cAAc,EAAE,CAAC,CAAC;IAC9E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAC;IAC7C,MAAM,OAAO,GAAG,KAAK,IAAI,EAAE;QACzB,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO;QACT,CAAC;QACD,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACtC,QAAQ,CAAC,SAAS,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,OAAO,EAAE,CAAC;IACjB,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7B,MAAM,KAAK,GAAG,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC9C,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,EAC5C,CAAC,KAAK,CAAC,CACR,CAAC;IACF,MAAM,MAAM,GAAG,KAAK,EAClB,SAGE,EACF,EAAE;QACF,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAC;QACjC,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACrC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,OAAO,EAAE,CAAC;QAChB,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IACF,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,CACL,eAAM,SAAS,EAAC,cAAc,gBAAY,2GAAsB,YAC9D,cAAK,SAAS,EAAC,uBAAuB,YAAE,KAAK,IAAI,gBAAgB,GAAO,GACnE,CACR,CAAC;IACJ,CAAC;IACD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;QAC1B,OAAO,CACL,gBAAM,SAAS,EAAC,cAAc,gBAAY,6FAAkB,aAC1D,KAAC,UAAU,IACT,IAAI,EAAE,OAAO,EACb,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAC9B,MAAM,EAAE,QAAQ,CAAC,cAAc,EAC/B,MAAM,EAAE,QAAQ,CAAC,MAAM,EACvB,QAAQ,EAAE,KAAK,EACf,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EACrC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;wBACrB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAC3B,OAAO,KAAK,IAAI;4BACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC;4BAC5C,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAC3D,CAAC;wBACF,IAAI,EAAE;4BAAE,UAAU,CAAC,SAAS,CAAC,CAAC;oBAChC,CAAC,GACD,EACD,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,cAAK,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAO,CACnD,IACI,CACR,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC/B,OAAO,CACL,gBAAM,SAAS,EAAC,cAAc,gBAAY,mGAAmB,aAC3D,KAAC,qBAAqB,IACpB,KAAK,EAAE,YAAY,EACnB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,EAC1C,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;wBACzB,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,GAAG,EAAE,CAC3B,KAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CACrD,CAAC;wBACF,IAAI,EAAE;4BAAE,eAAe,CAAC,SAAS,CAAC,CAAC;oBACrC,CAAC,GACD,EACD,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,cAAK,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAO,CACnD,IACI,CACR,CAAC;IACJ,CAAC;IACD,OAAO,CACL,gBAAM,SAAS,EAAC,cAAc,gBAAY,2GAAsB,aAC9D,kBAAQ,SAAS,EAAC,sBAAsB,aACtC,0BACE,iDAAkC,EAClC,gIAA+B,IAC3B,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,SAAS,CAAC,iDAG3D,IACF,EACT,eAAK,SAAS,EAAC,sBAAsB,aACnC,4BAAgB,mJAA2B,YACxC,CAAC,UAAU,EAAE,cAAc,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,GAAG,CAChE,CAAC,KAAK,EAAE,EAAE;4BACR,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CACxB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,KAAK,KAAK,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAC3D,CAAC;4BACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;gCAAE,OAAO,IAAI,CAAC;4BACtC,OAAO,CACL,eAAiB,SAAS,EAAC,yBAAyB,aAClD,2BAAS,KAAK,GAAU,EACvB,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CACtB,iBAEE,IAAI,EAAC,QAAQ,kBAEX,cAAc,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAExD,OAAO,EAAE,GAAG,EAAE,CACZ,QAAQ,CAAC;4CACP,IAAI,EAAE,KAAK,CAAC,IAAI;yCACD,CAAC,YAGnB,KAAK,CAAC,KAAK,IAXP,KAAK,CAAC,IAAI,CAYR,CACV,CAAC,KAjBM,KAAK,CAkBT,CACP,CAAC;wBACJ,CAAC,CACF,GACG,EACN,mBAAS,SAAS,EAAC,uBAAuB,aACvC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC5B,cAAK,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAO,CACnD,EACA,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAC/C,KAAC,aAAa,IACZ,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,kBAAkB,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,CAChD,QAAQ,CAAC;oCACP,IAAI,EAAE,cAAc;oCACpB,cAAc;oCACd,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;iCAClD,CAAC,EAEJ,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,GAC/C,CACH,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAC/C,KAAC,UAAU,IACT,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,UAAU,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAC1D,CACH,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAC9C,KAAC,eAAe,IACd,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,KAAK,CAAC,GAAG,EACpB,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,MAAM,EAAE,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EACjD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EACzC,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAC9C,mBAAmB,EAAE,CAAC,MAAM,EAAE,EAAE,CAC9B,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAkB,CAAC,GAE7D,CACH,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CACvD,KAAC,kBAAkB,IACjB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,kBAAkB,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,CAChD,QAAQ,CAAC;oCACP,IAAI,EAAE,cAAc;oCACpB,cAAc;oCACd,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;iCAClD,CAAC,GAEJ,CACH,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,CACtD,KAAC,iBAAiB,IAChB,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,cAAc,EACZ,KAAK,CAAC,IAAI,KAAK,cAAc,CAAC,CAAC,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,EAAE,KAEvD,CAAC,KAAK,CAAC,IAAI,KAAK,cAAc;oCAClC,KAAK,CAAC,SAAS,KAAK,SAAS;oCAC3B,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,EAAE;oCAChC,CAAC,CAAC,EAAE,CAAC,EACP,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,EACxC,SAAS,EAAE,qBAAqB,CAAC,KAAK,CAAC,IAAI,CAAC,EAC5C,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,EACjD,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,GACpD,CACH,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CAChD,KAAC,gBAAgB,IACf,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,kBAAkB,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,CAChD,QAAQ,CAAC;oCACP,IAAI,EAAE,cAAc;oCACpB,cAAc;oCACd,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;iCAClD,CAAC,GAEJ,CACH,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CAClD,KAAC,aAAa,IACZ,GAAG,EAAE,QAAQ,EACb,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,kBAAkB,EAAE,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,CAChD,QAAQ,CAAC;oCACP,IAAI,EAAE,cAAc;oCACpB,cAAc;oCACd,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;iCAClD,CAAC,GAEJ,CACH,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CACjD,KAAC,YAAY,IAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CACpD,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,CAC/C,KAAC,UAAU,IAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CAClD,CAAC,CAAC,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,CACxB,8BACE,eAAK,SAAS,EAAC,yBAAyB,aACtC,0BACE,sEAAgB,EAChB,+cAGI,IACA,EACN,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,sGAGxB,IACL,EACN,cAAK,SAAS,EAAC,kBAAkB,YAC9B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CACnB,mBAAuB,SAAS,EAAC,kBAAkB,aACjD,eAAK,SAAS,EAAC,wBAAwB,aACrC,yBAAO,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,GAAG,GAAQ,EACnC,0BACE,uBAAK,IAAI,CAAC,IAAI,GAAM,EACpB,yBAAO,IAAI,CAAC,EAAE,GAAQ,IAClB,EACN,uBAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAAM,IAC9C,EACN,sBAAI,IAAI,CAAC,WAAW,IAAI,cAAc,GAAK,EAC3C,eAAK,SAAS,EAAC,0BAA0B,aACvC,2BACG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,iFACjC,EACP,gCACI,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM,gEAE1C,EACP,2BACG,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,+DACvC,EACP,2BAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,mDAAgB,EACtD,gCACI,GAAG,EACJ,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM;oEACzC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAM;oEAClD,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,sCAEtC,IACH,EACN,eAAK,SAAS,EAAC,2BAA2B,aACxC,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,mFAG7B,EACT,iBAAQ,IAAI,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,wEAE5C,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CACZ,KAAK,MAAM,CAAC,GAAG,EAAE,CACf,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;gEAC5C,GAAG,IAAI;gEACP,OAAO,EAAE,CAAC,IAAI,CAAC,OAAO;6DACvB,CAAC,CACH,YAGF,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,GACjC,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;gEACZ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;gEAC/C,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,OAAO,CAAC;gEAC3B,IAAI,KAAK,GAAG,CAAC,CAAC;gEACd,OAAO,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;oEAAE,EAAE,GAAG,GAAG,IAAI,CAAC,EAAE,SAAS,KAAK,EAAE,EAAE,CAAC;gEACtD,KAAK,MAAM,CAAC,GAAG,EAAE,CACf,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,EAAE;oEACnC,GAAG,IAAI;oEACP,EAAE;oEACF,IAAI,EAAE,GAAG,IAAI,CAAC,IAAI,UAAU;iEAC7B,CAAC,CACH,CAAC;4DACJ,CAAC,mFAGM,EACT,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,sBAAsB,EAChC,QAAQ,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,EAC3B,OAAO,EAAE,GAAG,EAAE;gEACZ,IACE,CAAC,MAAM,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,IAAI,IAAI,CAAC;oEAElD,OAAO;gEACT,MAAM,WAAW,GACf,YAAY,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;oEACjD,IAAI,CAAC;gEACP,KAAK,MAAM,CAAC,GAAG,EAAE,CACf,KAAK,CAAC,GAAG,CAAC,aAAa,CACrB,KAAK,CAAC,KAAK,EACX,IAAI,CAAC,EAAE,EACP,WAAW,CACZ,CACF,CAAC;4DACJ,CAAC,2DAGM,IACL,KA9FM,IAAI,CAAC,EAAE,CA+FX,CACX,CAAC,GACE,IACL,CACJ,CAAC,CAAC,CAAC,QAAQ,KAAK,SAAS,IAAI,IAAI,KAAK,aAAa,CAAC,CAAC,CAAC,CACrD,KAAC,eAAe,IAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,GAAI,CACvD,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CACtB,8BACE,cAAK,SAAS,EAAC,yBAAyB,YACtC,0BACE,gEAAe,EACf,itBAII,IACA,GACF,EACN,KAAC,UAAU,IACT,MAAM,EAAE,QAAQ,CAAC,MAAM,EACvB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,eAAe,GACzB,IACD,CACJ,CAAC,CAAC,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,CACtB,8BACE,cAAK,SAAS,EAAC,yBAAyB,YACtC,0BACE,6HAA0B,EAC1B,qXAGI,IACA,GACF,EACN,eAAK,SAAS,EAAC,oBAAoB,aACjC,iBACE,IAAI,EAAC,QAAQ,kBACC,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACxD,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,mFAG7B,EACT,iBACE,IAAI,EAAC,QAAQ,kBACC,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EACzD,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,OAAO,CAAC,qDAG9B,IACL,EACL,UAAU,KAAK,MAAM,CAAC,CAAC,CAAC,CACvB,eAAK,SAAS,EAAC,oBAAoB,aACjC,iBACE,IAAI,EAAC,QAAQ,kBAEX,gBAAgB,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAEpD,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,QAAQ,CAAC,YAE3C,kBAAkB,CAAC,MAAM,GACnB,EACT,iBACE,IAAI,EAAC,QAAQ,kBAEX,gBAAgB,KAAK,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAE5D,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,YAEnD,kBAAkB,CAAC,cAAc,GAC3B,EACT,iBACE,IAAI,EAAC,QAAQ,kBAEX,gBAAgB,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAElD,OAAO,EAAE,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,YAEzC,kBAAkB,CAAC,IAAI,GACjB,IACL,CACP,CAAC,CAAC,CAAC,IAAI,EACR,KAAC,gBAAgB,IACf,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,QAAQ,CAAC,OAAO,EACzB,YAAY,EAAE,QAAQ,CAAC,MAAM,EAC7B,QAAQ,EACN,UAAU,KAAK,MAAM;4CACnB,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC;4CACpC,CAAC,CAAC,MAAM,CAAC,MAAM,EAEnB,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CACnB,SAAS,CACP,UAAU,KAAK,MAAM;4CACnB,CAAC,CAAC;gDACE,GAAG,MAAM;gDACT,KAAK,EAAE;oDACL,GAAG,MAAM,CAAC,KAAK;oDACf,CAAC,gBAAgB,CAAC,EAAE,MAAM;iDAC3B;6CACF;4CACH,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,CAClC,GAEH,EACF,eAAK,SAAS,EAAC,sBAAsB,gIACb,YAAY,CAAC,MAAM,8DAAa,GAAG,EACxD,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,GAAG,sTAE3D,EACN,eAAK,SAAS,EAAC,uBAAuB,aACpC,gBAAQ,EACR,iBACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,uBAAuB,EACjC,OAAO,EAAE,GAAG,EAAE,CACZ,KAAK,MAAM,CAAC,GAAG,EAAE,CACf,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,CAC5C,yKAII,IACL,IACL,CACJ,CAAC,CAAC,CAAC,CACF,YAAG,SAAS,EAAC,qBAAqB,mHAAuB,CAC1D,IACO,IACN,IACD,CACR,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"QaAdmin.js","sourceRoot":"","sources":["../../../src/client/admin/QaAdmin.tsx"],"names":[],"mappings":"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"}
|