@red-hat-developer-hub/backstage-plugin-lightspeed 2.6.5 → 2.6.6

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.
@@ -14,94 +14,105 @@ const NotebookCard = ({
14
14
  onRename,
15
15
  onDelete,
16
16
  t
17
- }) => /* @__PURE__ */ jsxs(
18
- Card,
19
- {
20
- className: classes.notebookCard,
21
- isSelectable: true,
22
- isClickable: true,
23
- onClick: () => onClick(notebook),
24
- children: [
25
- /* @__PURE__ */ jsx(
26
- CardHeader,
27
- {
28
- className: classes.notebookCardHeader,
29
- actions: {
30
- actions: /* @__PURE__ */ jsx(
31
- Dropdown,
32
- {
33
- className: classes.notebookDropdownMenu,
34
- isOpen: openNotebookMenuId === notebook.session_id,
35
- popperProps: {
36
- position: "end",
37
- preventOverflow: true
38
- },
39
- onOpenChange: (isOpen) => setOpenNotebookMenuId(isOpen ? notebook.session_id : null),
40
- toggle: (toggleRef) => /* @__PURE__ */ jsx(
41
- MenuToggle,
42
- {
43
- ref: toggleRef,
44
- variant: "plain",
45
- className: classes.notebookMenuButton,
46
- "aria-label": t("aria.options.label"),
47
- isExpanded: openNotebookMenuId === notebook.session_id,
48
- onClick: (event) => {
49
- event.stopPropagation();
50
- setOpenNotebookMenuId(
51
- (current) => current === notebook.session_id ? null : notebook.session_id
52
- );
53
- },
54
- children: /* @__PURE__ */ jsx(EllipsisVIcon, {})
55
- }
56
- ),
57
- children: /* @__PURE__ */ jsxs(DropdownList, { className: classes.notebookDropdownList, children: [
58
- /* @__PURE__ */ jsx(
59
- DropdownItem,
17
+ }) => {
18
+ const isMenuOpen = openNotebookMenuId === notebook.session_id;
19
+ const handleCardKeyDown = (e) => {
20
+ if (e.key === "Enter" || e.key === " ") {
21
+ e.preventDefault();
22
+ onClick(notebook);
23
+ }
24
+ };
25
+ return /* @__PURE__ */ jsxs(
26
+ Card,
27
+ {
28
+ className: classes.notebookCard,
29
+ component: "div",
30
+ tabIndex: 0,
31
+ "aria-label": t("notebooks.card.openAria", { name: notebook.name }),
32
+ onClick: () => onClick(notebook),
33
+ onKeyDown: handleCardKeyDown,
34
+ children: [
35
+ /* @__PURE__ */ jsx(
36
+ CardHeader,
37
+ {
38
+ className: classes.notebookCardHeader,
39
+ actions: {
40
+ actions: /* @__PURE__ */ jsx(
41
+ Dropdown,
42
+ {
43
+ className: classes.notebookDropdownMenu,
44
+ isOpen: isMenuOpen,
45
+ popperProps: {
46
+ position: "end",
47
+ preventOverflow: true
48
+ },
49
+ onOpenChange: (isOpen) => setOpenNotebookMenuId(isOpen ? notebook.session_id : null),
50
+ toggle: (toggleRef) => /* @__PURE__ */ jsx(
51
+ MenuToggle,
60
52
  {
61
- className: classes.notebookDropdownItem,
53
+ ref: toggleRef,
54
+ variant: "plain",
55
+ className: classes.notebookMenuButton,
56
+ "aria-label": t("aria.options.label"),
57
+ isExpanded: isMenuOpen,
62
58
  onClick: (event) => {
63
59
  event.stopPropagation();
64
- onRename(notebook.session_id);
65
- setOpenNotebookMenuId(null);
60
+ setOpenNotebookMenuId(
61
+ (current) => current === notebook.session_id ? null : notebook.session_id
62
+ );
66
63
  },
67
- children: t("notebooks.actions.rename")
64
+ children: /* @__PURE__ */ jsx(EllipsisVIcon, {})
68
65
  }
69
66
  ),
70
- /* @__PURE__ */ jsx(
71
- DropdownItem,
72
- {
73
- className: classes.notebookDropdownItem,
74
- onClick: (event) => {
75
- event.stopPropagation();
76
- onDelete(notebook.session_id);
77
- setOpenNotebookMenuId(null);
78
- },
79
- children: t("notebooks.actions.delete")
80
- }
81
- )
82
- ] })
83
- }
84
- ),
85
- className: classes.notebookCardHeaderActions
86
- },
87
- children: /* @__PURE__ */ jsxs(CardTitle, { className: classes.notebookTitle, children: [
88
- /* @__PURE__ */ jsx(CatalogIcon, {}),
89
- /* @__PURE__ */ jsx(Typography, { component: "span", className: classes.notebookTitleText, children: notebook.name })
90
- ] })
91
- }
92
- ),
93
- /* @__PURE__ */ jsx("div", { className: classes.notebookCardDivider }),
94
- /* @__PURE__ */ jsx(CardBody, { className: classes.notebookCardBody, children: /* @__PURE__ */ jsxs("div", { children: [
95
- /* @__PURE__ */ jsx("div", { className: classes.notebookDocuments, children: /* @__PURE__ */ jsxs(Typography, { variant: "body2", children: [
96
- notebook.document_count ?? 0,
97
- " ",
98
- t("notebooks.documents")
99
- ] }) }),
100
- /* @__PURE__ */ jsx("div", { className: classes.notebookUpdated, children: /* @__PURE__ */ jsx(Typography, { variant: "caption", children: formatUpdatedLabel(notebook.updated_at, t) }) })
101
- ] }) })
102
- ]
103
- }
104
- );
67
+ children: /* @__PURE__ */ jsxs(DropdownList, { className: classes.notebookDropdownList, children: [
68
+ /* @__PURE__ */ jsx(
69
+ DropdownItem,
70
+ {
71
+ className: classes.notebookDropdownItem,
72
+ onClick: (event) => {
73
+ event.stopPropagation();
74
+ onRename(notebook.session_id);
75
+ setOpenNotebookMenuId(null);
76
+ },
77
+ children: t("notebooks.actions.rename")
78
+ }
79
+ ),
80
+ /* @__PURE__ */ jsx(
81
+ DropdownItem,
82
+ {
83
+ className: classes.notebookDropdownItem,
84
+ onClick: (event) => {
85
+ event.stopPropagation();
86
+ onDelete(notebook.session_id);
87
+ setOpenNotebookMenuId(null);
88
+ },
89
+ children: t("notebooks.actions.delete")
90
+ }
91
+ )
92
+ ] })
93
+ }
94
+ ),
95
+ className: classes.notebookCardHeaderActions
96
+ },
97
+ children: /* @__PURE__ */ jsxs(CardTitle, { className: classes.notebookTitle, children: [
98
+ /* @__PURE__ */ jsx(CatalogIcon, {}),
99
+ /* @__PURE__ */ jsx(Typography, { component: "span", className: classes.notebookTitleText, children: notebook.name })
100
+ ] })
101
+ }
102
+ ),
103
+ /* @__PURE__ */ jsx("div", { className: classes.notebookCardDivider }),
104
+ /* @__PURE__ */ jsx(CardBody, { className: classes.notebookCardBody, children: /* @__PURE__ */ jsxs("div", { children: [
105
+ /* @__PURE__ */ jsx("div", { className: classes.notebookDocuments, children: /* @__PURE__ */ jsxs(Typography, { variant: "body2", children: [
106
+ notebook.document_count ?? 0,
107
+ " ",
108
+ t("notebooks.documents")
109
+ ] }) }),
110
+ /* @__PURE__ */ jsx("div", { className: classes.notebookUpdated, children: /* @__PURE__ */ jsx(Typography, { variant: "caption", children: formatUpdatedLabel(notebook.updated_at, t) }) })
111
+ ] }) })
112
+ ]
113
+ }
114
+ );
115
+ };
105
116
 
106
117
  export { NotebookCard };
107
118
  //# sourceMappingURL=NotebookCard.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotebookCard.esm.js","sources":["../../../src/components/notebooks/NotebookCard.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { TranslationFunction } from '@backstage/core-plugin-api/alpha';\n\nimport Typography from '@mui/material/Typography';\nimport {\n Card,\n CardBody,\n CardHeader,\n CardTitle,\n Dropdown,\n DropdownItem,\n DropdownList,\n MenuToggle,\n} from '@patternfly/react-core';\nimport { EllipsisVIcon } from '@patternfly/react-icons';\nimport { CatalogIcon } from '@patternfly/react-icons/dist/esm/icons';\n\nimport { lightspeedTranslationRef } from '../../translations/ref';\nimport { NotebookSession } from '../../types';\nimport { formatUpdatedLabel } from '../../utils/notebooks-utils';\n\ntype NotebookCardProps = {\n notebook: NotebookSession;\n classes: Record<string, string>;\n openNotebookMenuId: string | null;\n setOpenNotebookMenuId: React.Dispatch<React.SetStateAction<string | null>>;\n onClick: (notebook: NotebookSession) => void;\n onRename: (sessionId: string) => void;\n onDelete: (sessionId: string) => void;\n t: TranslationFunction<typeof lightspeedTranslationRef.T>;\n};\n\nexport const NotebookCard = ({\n notebook,\n classes,\n openNotebookMenuId,\n setOpenNotebookMenuId,\n onClick,\n onRename,\n onDelete,\n t,\n}: NotebookCardProps) => (\n <Card\n className={classes.notebookCard}\n isSelectable\n isClickable\n onClick={() => onClick(notebook)}\n >\n <CardHeader\n className={classes.notebookCardHeader}\n actions={{\n actions: (\n <Dropdown\n className={classes.notebookDropdownMenu}\n isOpen={openNotebookMenuId === notebook.session_id}\n popperProps={{\n position: 'end',\n preventOverflow: true,\n }}\n onOpenChange={isOpen =>\n setOpenNotebookMenuId(isOpen ? notebook.session_id : null)\n }\n toggle={toggleRef => (\n <MenuToggle\n ref={toggleRef}\n variant=\"plain\"\n className={classes.notebookMenuButton}\n aria-label={t('aria.options.label')}\n isExpanded={openNotebookMenuId === notebook.session_id}\n onClick={event => {\n event.stopPropagation();\n setOpenNotebookMenuId(current =>\n current === notebook.session_id\n ? null\n : notebook.session_id,\n );\n }}\n >\n <EllipsisVIcon />\n </MenuToggle>\n )}\n >\n <DropdownList className={classes.notebookDropdownList}>\n <DropdownItem\n className={classes.notebookDropdownItem}\n onClick={event => {\n event.stopPropagation();\n onRename(notebook.session_id);\n setOpenNotebookMenuId(null);\n }}\n >\n {t('notebooks.actions.rename')}\n </DropdownItem>\n <DropdownItem\n className={classes.notebookDropdownItem}\n onClick={event => {\n event.stopPropagation();\n onDelete(notebook.session_id);\n setOpenNotebookMenuId(null);\n }}\n >\n {t('notebooks.actions.delete')}\n </DropdownItem>\n </DropdownList>\n </Dropdown>\n ),\n className: classes.notebookCardHeaderActions,\n }}\n >\n <CardTitle className={classes.notebookTitle}>\n <CatalogIcon />\n <Typography component=\"span\" className={classes.notebookTitleText}>\n {notebook.name}\n </Typography>\n </CardTitle>\n </CardHeader>\n <div className={classes.notebookCardDivider} />\n <CardBody className={classes.notebookCardBody}>\n <div>\n <div className={classes.notebookDocuments}>\n <Typography variant=\"body2\">\n {notebook.document_count ?? 0} {t('notebooks.documents')}\n </Typography>\n </div>\n <div className={classes.notebookUpdated}>\n <Typography variant=\"caption\">\n {formatUpdatedLabel(notebook.updated_at, t)}\n </Typography>\n </div>\n </div>\n </CardBody>\n </Card>\n);\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotebookCard.esm.js","sources":["../../../src/components/notebooks/NotebookCard.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { TranslationFunction } from '@backstage/core-plugin-api/alpha';\n\nimport Typography from '@mui/material/Typography';\nimport {\n Card,\n CardBody,\n CardHeader,\n CardTitle,\n Dropdown,\n DropdownItem,\n DropdownList,\n MenuToggle,\n} from '@patternfly/react-core';\nimport { EllipsisVIcon } from '@patternfly/react-icons';\nimport { CatalogIcon } from '@patternfly/react-icons/dist/esm/icons';\n\nimport { lightspeedTranslationRef } from '../../translations/ref';\nimport { NotebookSession } from '../../types';\nimport { formatUpdatedLabel } from '../../utils/notebooks-utils';\n\ntype NotebookCardProps = {\n notebook: NotebookSession;\n classes: Record<string, string>;\n openNotebookMenuId: string | null;\n setOpenNotebookMenuId: React.Dispatch<React.SetStateAction<string | null>>;\n onClick: (notebook: NotebookSession) => void;\n onRename: (sessionId: string) => void;\n onDelete: (sessionId: string) => void;\n t: TranslationFunction<typeof lightspeedTranslationRef.T>;\n};\n\nexport const NotebookCard = ({\n notebook,\n classes,\n openNotebookMenuId,\n setOpenNotebookMenuId,\n onClick,\n onRename,\n onDelete,\n t,\n}: NotebookCardProps) => {\n const isMenuOpen = openNotebookMenuId === notebook.session_id;\n\n const handleCardKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick(notebook);\n }\n };\n\n return (\n <Card\n className={classes.notebookCard}\n component=\"div\"\n tabIndex={0}\n aria-label={t('notebooks.card.openAria' as any, { name: notebook.name })}\n onClick={() => onClick(notebook)}\n onKeyDown={handleCardKeyDown}\n >\n <CardHeader\n className={classes.notebookCardHeader}\n actions={{\n actions: (\n <Dropdown\n className={classes.notebookDropdownMenu}\n isOpen={isMenuOpen}\n popperProps={{\n position: 'end',\n preventOverflow: true,\n }}\n onOpenChange={isOpen =>\n setOpenNotebookMenuId(isOpen ? notebook.session_id : null)\n }\n toggle={toggleRef => (\n <MenuToggle\n ref={toggleRef}\n variant=\"plain\"\n className={classes.notebookMenuButton}\n aria-label={t('aria.options.label')}\n isExpanded={isMenuOpen}\n onClick={event => {\n event.stopPropagation();\n setOpenNotebookMenuId(current =>\n current === notebook.session_id\n ? null\n : notebook.session_id,\n );\n }}\n >\n <EllipsisVIcon />\n </MenuToggle>\n )}\n >\n <DropdownList className={classes.notebookDropdownList}>\n <DropdownItem\n className={classes.notebookDropdownItem}\n onClick={event => {\n event.stopPropagation();\n onRename(notebook.session_id);\n setOpenNotebookMenuId(null);\n }}\n >\n {t('notebooks.actions.rename')}\n </DropdownItem>\n <DropdownItem\n className={classes.notebookDropdownItem}\n onClick={event => {\n event.stopPropagation();\n onDelete(notebook.session_id);\n setOpenNotebookMenuId(null);\n }}\n >\n {t('notebooks.actions.delete')}\n </DropdownItem>\n </DropdownList>\n </Dropdown>\n ),\n className: classes.notebookCardHeaderActions,\n }}\n >\n <CardTitle className={classes.notebookTitle}>\n <CatalogIcon />\n <Typography component=\"span\" className={classes.notebookTitleText}>\n {notebook.name}\n </Typography>\n </CardTitle>\n </CardHeader>\n <div className={classes.notebookCardDivider} />\n <CardBody className={classes.notebookCardBody}>\n <div>\n <div className={classes.notebookDocuments}>\n <Typography variant=\"body2\">\n {notebook.document_count ?? 0} {t('notebooks.documents')}\n </Typography>\n </div>\n <div className={classes.notebookUpdated}>\n <Typography variant=\"caption\">\n {formatUpdatedLabel(notebook.updated_at, t)}\n </Typography>\n </div>\n </div>\n </CardBody>\n </Card>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useState, useCallback, useEffect, useRef } from 'react';
3
3
  import { useApi } from '@backstage/core-plugin-api';
4
- import { makeStyles, Typography } from '@material-ui/core';
4
+ import { Typography, makeStyles } from '@material-ui/core';
5
5
  import { ChatbotFooter, MessageBar, ChatbotFootnote, ChatbotContent, ChatbotWelcomePrompt } from '@patternfly/chatbot';
6
6
  import { DrawerPanelContent, AlertGroup, Alert, AlertVariant, AlertActionCloseButton, Drawer, DrawerContent, DrawerContentBody, Tooltip, Button } from '@patternfly/react-core';
7
7
  import { TimesIcon } from '@patternfly/react-icons';
@@ -67,7 +67,7 @@ const useStyles = makeStyles((theme) => ({
67
67
  minHeight: 0
68
68
  },
69
69
  drawerContentBody: {
70
- backgroundColor: "var(--pf-t--global--background--color--secondary--default)",
70
+ backgroundColor: "var(--pf-t--global--background--color--primary--default)",
71
71
  height: "100%"
72
72
  },
73
73
  contentColumn: {
@@ -100,7 +100,15 @@ const useStyles = makeStyles((theme) => ({
100
100
  flexDirection: "column",
101
101
  flex: 1,
102
102
  minHeight: 0,
103
- overflow: "auto"
103
+ overflow: "auto",
104
+ backgroundColor: "var(--pf-t--global--background--color--floating--default)"
105
+ },
106
+ notebookEmptyUpload: {
107
+ flex: 1,
108
+ display: "flex",
109
+ flexDirection: "column",
110
+ minHeight: 0,
111
+ backgroundColor: "var(--pf-t--global--background--color--floating--default)"
104
112
  },
105
113
  notebookContentArea: {
106
114
  width: "95%",
@@ -132,9 +140,13 @@ const useStyles = makeStyles((theme) => ({
132
140
  padding: `0 0 ${theme.spacing(1)}px`
133
141
  },
134
142
  footer: {
143
+ backgroundColor: theme.palette.background.paper,
135
144
  "&>.pf-chatbot__footer-container": {
136
145
  width: "95% !important",
137
146
  maxWidth: "unset !important"
147
+ },
148
+ "& .pf-chatbot__message-bar": {
149
+ backgroundColor: theme.palette.grey[300]
138
150
  }
139
151
  },
140
152
  chatContent: {
@@ -385,7 +397,7 @@ const NotebookView = ({
385
397
  );
386
398
  const renderMainContent = () => {
387
399
  if (!hasDocuments && messages.length === 0) {
388
- return /* @__PURE__ */ jsx(UploadResourceScreen, { onUploadClick: handleOpenUploadModal });
400
+ return /* @__PURE__ */ jsx(Typography, { component: "span", className: classes.notebookEmptyUpload, children: /* @__PURE__ */ jsx(UploadResourceScreen, { onUploadClick: handleOpenUploadModal }) });
389
401
  }
390
402
  if (messages.length > 0) {
391
403
  return /* @__PURE__ */ jsx(ChatbotContent, { className: classes.chatContent, children: /* @__PURE__ */ jsx(
@@ -483,7 +495,7 @@ const NotebookView = ({
483
495
  {
484
496
  content: isAddDisabled ? t("notebook.view.documents.maxReached") : t("notebook.view.documents.add"),
485
497
  position: "right",
486
- children: /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(
498
+ children: /* @__PURE__ */ jsx(Typography, { component: "span", children: /* @__PURE__ */ jsx(
487
499
  Button,
488
500
  {
489
501
  variant: "plain",
@@ -1 +1 @@
1
- {"version":3,"file":"NotebookView.esm.js","sources":["../../../src/components/notebooks/NotebookView.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useApi } from '@backstage/core-plugin-api';\n\nimport { makeStyles, Typography } from '@material-ui/core';\nimport {\n ChatbotContent,\n ChatbotFooter,\n ChatbotFootnote,\n ChatbotWelcomePrompt,\n MessageBar,\n MessageProps,\n} from '@patternfly/chatbot';\nimport {\n Alert,\n AlertActionCloseButton,\n AlertGroup,\n AlertVariant,\n Button,\n Drawer,\n DrawerContent,\n DrawerContentBody,\n DrawerPanelContent,\n Tooltip,\n type AlertProps,\n} from '@patternfly/react-core';\nimport { TimesIcon } from '@patternfly/react-icons';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport {\n NOTEBOOK_MAX_FILES,\n TEMP_CONVERSATION_ID,\n UNTITLED_NOTEBOOK_NAME,\n} from '../../const';\nimport { useCreateNotebookMessage } from '../../hooks/notebooks/useCreateNotebookMessage';\nimport {\n useDocumentStatusPolling,\n type PendingUpload,\n} from '../../hooks/notebooks/useDocumentStatusPolling';\nimport { useConversationMessages } from '../../hooks/useConversationMessages';\nimport { CreateMessageVariables } from '../../hooks/useCreateCoversationMessage';\nimport { useTranslation } from '../../hooks/useTranslation';\nimport { useWelcomePrompts } from '../../hooks/useWelcomePrompts';\nimport { NotebookSessionMetadata, SessionDocument } from '../../types';\nimport { LightspeedChatBox } from '../LightspeedChatBox';\nimport { AddDocumentModal } from './AddDocumentModal';\nimport { DocumentSidebar } from './DocumentSidebar';\nimport { OverwriteConfirmModal } from './OverwriteConfirmModal';\nimport { AddCircleFilledIcon, SidebarExpandIcon } from './SidebarCollapseIcon';\nimport { UploadResourceScreen } from './UploadResourceScreen';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n height: '100%',\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n },\n drawerContainer: {\n flex: 1,\n minHeight: 0,\n },\n expandStrip: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: theme.spacing(1.5),\n gap: theme.spacing(1),\n borderRight: '1px solid var(--pf-t--global--border--color--default)',\n },\n addIconButton: {\n padding: 0,\n minWidth: 0,\n lineHeight: 1,\n },\n mainArea: {\n display: 'flex',\n flexDirection: 'row',\n height: '100%',\n minWidth: 0,\n },\n topBar: {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: `${theme.spacing(1.5)}px ${theme.spacing(2)}px`,\n },\n closeButton: {\n textTransform: 'none',\n },\n mainContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n },\n drawerContentBody: {\n backgroundColor:\n 'var(--pf-t--global--background--color--secondary--default)',\n height: '100%',\n },\n contentColumn: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n overflow: 'hidden',\n },\n alertContainer: {\n width: '95%',\n maxWidth: 'unset',\n margin: '0 auto',\n padding: `0 0 ${theme.spacing(1)}px`,\n },\n toastAlertGroup: {\n '--pf-v6-c-alert-group--m-toast--InsetInlineEnd': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--InsetBlockStart': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--MaxWidth': '350px',\n },\n toastAlert: {\n maxWidth: '350px',\n '& .pf-v6-c-alert__title': {\n margin: 0,\n },\n },\n welcomeContainer: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n overflow: 'auto',\n },\n notebookContentArea: {\n width: '95%',\n maxWidth: 'unset',\n margin: `${theme.spacing(3)}px auto 0 auto`,\n padding: 0,\n },\n notebookHeading: {\n fontSize: '2rem',\n fontWeight: 500,\n lineHeight: 1.25,\n padding: `${theme.spacing(1)}px 0`,\n },\n notebookSummary: {\n fontSize: '1rem',\n lineHeight: 2,\n color: 'var(--pf-t--global--text--color--regular)',\n paddingTop: theme.spacing(0.5),\n },\n promptSuggestions: {\n width: '95%',\n maxWidth: 'unset',\n margin: '0 auto',\n },\n footerAlignedAlert: {\n maxWidth: 'unset',\n width: '95%',\n margin: '0 auto',\n padding: `0 0 ${theme.spacing(1)}px`,\n },\n footer: {\n '&>.pf-chatbot__footer-container': {\n width: '95% !important',\n maxWidth: 'unset !important',\n },\n },\n chatContent: {\n minHeight: 0,\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'auto',\n },\n}));\n\ntype NotebookViewProps = {\n sessionId: string;\n notebookName?: string;\n documents?: SessionDocument[];\n metadata?: NotebookSessionMetadata;\n topicSummary?: string;\n userName?: string;\n avatar?: string;\n profileLoading: boolean;\n topicRestrictionEnabled: boolean;\n selectedModel: string;\n onClose: () => void;\n};\n\nexport const NotebookView = ({\n sessionId,\n notebookName = UNTITLED_NOTEBOOK_NAME,\n documents = [],\n metadata,\n topicSummary,\n userName,\n avatar,\n profileLoading,\n topicRestrictionEnabled,\n selectedModel,\n onClose,\n}: NotebookViewProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n const notebooksApi = useApi(notebooksApiRef);\n const { mutateAsync: notebookCreateMessage } = useCreateNotebookMessage();\n\n const [conversationId, setConversationId] = useState(\n metadata?.conversation_id ?? TEMP_CONVERSATION_ID,\n );\n const [isSendButtonDisabled, setIsSendButtonDisabled] = useState(false);\n const [announcement, setAnnouncement] = useState<string | undefined>(\n undefined,\n );\n const [deletingDocumentIds, setDeletingDocumentIds] = useState<Set<string>>(\n new Set(),\n );\n\n const handleDeleteDocument = useCallback(\n async (documentId: string) => {\n setDeletingDocumentIds(prev => new Set(prev).add(documentId));\n try {\n await notebooksApi.deleteDocument(sessionId, documentId);\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n } finally {\n setDeletingDocumentIds(prev => {\n const next = new Set(prev);\n next.delete(documentId);\n return next;\n });\n }\n },\n [notebooksApi, sessionId, queryClient],\n );\n\n const onComplete = useCallback(\n (message: string) => {\n setIsSendButtonDisabled(false);\n setAnnouncement(`Message from Bot: ${message}`);\n queryClient.invalidateQueries({\n queryKey: ['conversationMessages', conversationId],\n });\n },\n [queryClient, conversationId],\n );\n\n const onStart = useCallback((conv_id: string) => {\n setConversationId(conv_id);\n }, []);\n\n const createMessageAdapter = useCallback(\n async (vars: CreateMessageVariables) => {\n return notebookCreateMessage({\n prompt: vars.prompt,\n sessionId,\n });\n },\n [notebookCreateMessage, sessionId],\n );\n\n const { conversationMessages, handleInputPrompt, scrollToBottomRef } =\n useConversationMessages(\n conversationId,\n userName,\n selectedModel,\n '',\n avatar,\n onComplete,\n onStart,\n createMessageAdapter,\n );\n\n const [messages, setMessages] =\n useState<MessageProps[]>(conversationMessages);\n\n useEffect(() => {\n setMessages(conversationMessages);\n }, [conversationMessages]);\n\n const sendMessage = useCallback(\n (message: string | number) => {\n setAnnouncement(\n t('conversation.announcement.userMessage' as any, {\n prompt: message.toString(),\n }),\n );\n handleInputPrompt(message.toString(), []);\n setIsSendButtonDisabled(true);\n },\n [handleInputPrompt, t],\n );\n\n const samplePrompts = useWelcomePrompts();\n const welcomePrompts =\n samplePrompts?.map(prompt => {\n const p = prompt as { title: string; message: string };\n return {\n title: p.title,\n message: p.message,\n onClick: () => sendMessage(p.message),\n };\n }) ?? [];\n\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false);\n const [isUploadModalOpen, setIsUploadModalOpen] = useState(false);\n const [uploadingFileNames, setUploadingFileNames] = useState<string[]>([]);\n const [pendingUploads, setPendingUploads] = useState<PendingUpload[]>([]);\n const [toastAlerts, setToastAlerts] = useState<Partial<AlertProps>[]>([]);\n const processedIds = useRef<Set<string>>(new Set());\n const [completedFileNames, setCompletedFileNames] = useState<Set<string>>(\n new Set(),\n );\n const [filesToOverwrite, setFilesToOverwrite] = useState<File[]>([]);\n const [isOverwriteModalOpen, setIsOverwriteModalOpen] = useState(false);\n const [filesToAddToModal, setFilesToAddToModal] = useState<File[]>([]);\n\n const handleOpenUploadModal = () => setIsUploadModalOpen(true);\n const handleCloseUploadModal = () => setIsUploadModalOpen(false);\n\n const handleFilesUploading = (files: File[]) => {\n setUploadingFileNames(prev => {\n const newNames = files\n .map(f => f.name)\n .filter(name => !prev.includes(name));\n return [...prev, ...newNames];\n });\n };\n\n const handleUploadStarted = (info: {\n fileName: string;\n documentId: string;\n }) => {\n processedIds.current.delete(info.documentId);\n setPendingUploads(prev => [\n ...prev,\n { fileName: info.fileName, documentId: info.documentId },\n ]);\n };\n\n const handleUploadFailed = (fileName: string) => {\n setUploadingFileNames(prev => prev.filter(n => n !== fileName));\n setToastAlerts(prev => [\n {\n key: Date.now() + fileName,\n title: (t as Function)('notebook.upload.failed', {\n fileName,\n }) as string,\n variant: 'danger',\n },\n ...prev,\n ]);\n };\n\n const handleDuplicatesFound = (files: File[]) => {\n setFilesToOverwrite(files);\n setIsOverwriteModalOpen(true);\n };\n\n const handleOverwriteConfirm = () => {\n const files = filesToOverwrite;\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n\n if (files.length === 0) return;\n\n setFilesToAddToModal(files);\n };\n\n const handleFilesAddedToModal = () => {\n setFilesToAddToModal([]);\n };\n\n const handleOverwriteCancel = () => {\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n };\n\n const pollingResults = useDocumentStatusPolling(sessionId, pendingUploads);\n\n useEffect(() => {\n const completedOrFailed = pollingResults.filter(\n r =>\n (r.status === 'completed' ||\n r.status === 'failed' ||\n r.status === 'cancelled') &&\n !processedIds.current.has(r.documentId),\n );\n\n if (completedOrFailed.length === 0) return;\n\n const idsToRemove = new Set<string>();\n const namesToRemove = new Set<string>();\n const newAlerts: Partial<AlertProps>[] = [];\n\n const newCompletedNames = new Set<string>();\n\n for (const result of completedOrFailed) {\n processedIds.current.add(result.documentId);\n idsToRemove.add(result.documentId);\n namesToRemove.add(result.fileName);\n if (result.status === 'completed') {\n newCompletedNames.add(result.fileName);\n }\n\n if (result.status === 'completed') {\n newAlerts.push({\n key: Date.now() + result.documentId,\n title: (t as Function)('notebook.upload.success', {\n fileName: result.fileName,\n }) as string,\n variant: 'success',\n });\n } else {\n newAlerts.push({\n key: Date.now() + result.documentId,\n title: (t as Function)('notebook.upload.failed', {\n fileName: result.fileName,\n }) as string,\n variant: 'danger',\n });\n }\n }\n\n setPendingUploads(prev => prev.filter(u => !idsToRemove.has(u.documentId)));\n setUploadingFileNames(prev =>\n prev.filter(name => !namesToRemove.has(name)),\n );\n if (newCompletedNames.size > 0) {\n setCompletedFileNames(prev => new Set([...prev, ...newCompletedNames]));\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n }\n setToastAlerts(prev => [...newAlerts, ...prev]);\n }, [pollingResults, t, queryClient, sessionId]);\n\n const handleRemoveToastAlert = (key: React.Key) => {\n setToastAlerts(prev => prev.filter(a => a.key !== key));\n };\n\n const hasDocuments = documents.length > 0 || uploadingFileNames.length > 0;\n const totalDocumentCount = documents.length + uploadingFileNames.length;\n const isAddDisabled = totalDocumentCount >= NOTEBOOK_MAX_FILES;\n\n const panelContent = (\n <DrawerPanelContent\n isResizable\n defaultSize=\"310px\"\n minSize=\"232px\"\n maxSize=\"50%\"\n resizeAriaLabel={t('notebook.view.sidebar.resize')}\n >\n <DocumentSidebar\n notebookName={notebookName}\n documents={documents}\n uploadingFileNames={uploadingFileNames}\n completedFileNames={completedFileNames}\n deletingDocumentIds={deletingDocumentIds}\n collapsed={sidebarCollapsed}\n onToggleCollapse={() => setSidebarCollapsed(prev => !prev)}\n onAddDocument={handleOpenUploadModal}\n onDeleteDocument={handleDeleteDocument}\n />\n </DrawerPanelContent>\n );\n\n const renderMainContent = () => {\n if (!hasDocuments && messages.length === 0) {\n return <UploadResourceScreen onUploadClick={handleOpenUploadModal} />;\n }\n if (messages.length > 0) {\n return (\n <ChatbotContent className={classes.chatContent}>\n <LightspeedChatBox\n userName={userName}\n messages={messages}\n profileLoading={profileLoading}\n announcement={announcement}\n ref={scrollToBottomRef}\n welcomePrompts={[]}\n conversationId={conversationId}\n isStreaming={isSendButtonDisabled}\n topicRestrictionEnabled={topicRestrictionEnabled}\n />\n </ChatbotContent>\n );\n }\n return (\n <div className={classes.welcomeContainer}>\n <div className={classes.alertContainer}>\n <Alert isInline variant=\"info\" title={t('aria.important')}>\n {t('disclaimer.withoutValidation')}\n </Alert>\n </div>\n <div className={classes.notebookContentArea}>\n <Typography className={classes.notebookHeading}>\n {notebookName}\n </Typography>\n {topicSummary && (\n <Typography className={classes.notebookSummary}>\n {topicSummary}\n </Typography>\n )}\n </div>\n {welcomePrompts.length > 0 && (\n <div className={classes.promptSuggestions}>\n <ChatbotWelcomePrompt\n title=\"\"\n description=\"\"\n prompts={welcomePrompts}\n />\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div className={classes.root}>\n {toastAlerts.length > 0 && (\n <AlertGroup\n hasAnimations\n isToast\n isLiveRegion\n className={classes.toastAlertGroup}\n >\n {toastAlerts.map(({ key, title, variant }) => (\n <Alert\n key={key}\n variant={AlertVariant[variant ?? 'success']}\n title={title}\n className={classes.toastAlert}\n timeout={2000}\n onTimeout={() => handleRemoveToastAlert(key as React.Key)}\n actionClose={\n <AlertActionCloseButton\n title={title as string}\n variantLabel={`${variant ?? 'success'} alert`}\n onClose={() => handleRemoveToastAlert(key as React.Key)}\n />\n }\n />\n ))}\n </AlertGroup>\n )}\n <Drawer\n isExpanded={!sidebarCollapsed}\n isInline\n position=\"start\"\n className={classes.drawerContainer}\n >\n <DrawerContent\n panelContent={!sidebarCollapsed ? panelContent : undefined}\n >\n <DrawerContentBody className={classes.drawerContentBody}>\n <div className={classes.mainArea}>\n {sidebarCollapsed && (\n <div className={classes.expandStrip}>\n <Tooltip\n content={t('notebook.view.sidebar.expand')}\n position=\"right\"\n >\n <Button\n variant=\"plain\"\n onClick={() => setSidebarCollapsed(false)}\n aria-label={t('notebook.view.sidebar.expand')}\n size=\"sm\"\n >\n <SidebarExpandIcon />\n </Button>\n </Tooltip>\n <Tooltip\n content={\n isAddDisabled\n ? t('notebook.view.documents.maxReached')\n : t('notebook.view.documents.add')\n }\n position=\"right\"\n >\n <span>\n <Button\n variant=\"plain\"\n className={classes.addIconButton}\n onClick={\n isAddDisabled ? undefined : handleOpenUploadModal\n }\n aria-label={t('notebook.view.documents.add')}\n isDisabled={isAddDisabled}\n >\n <AddCircleFilledIcon disabled={isAddDisabled} />\n </Button>\n </span>\n </Tooltip>\n </div>\n )}\n\n <div className={classes.contentColumn}>\n <div className={classes.topBar}>\n <Button\n variant=\"link\"\n className={classes.closeButton}\n onClick={onClose}\n icon={<TimesIcon />}\n iconPosition=\"end\"\n >\n {t('notebook.view.close')}\n </Button>\n </div>\n\n <div className={classes.mainContent}>{renderMainContent()}</div>\n\n {!hasDocuments && messages.length === 0 && (\n <div className={classes.footerAlignedAlert}>\n <Alert isInline variant=\"info\" title={t('aria.important')}>\n {t('disclaimer.withoutValidation')}\n </Alert>\n </div>\n )}\n\n <ChatbotFooter className={classes.footer}>\n {documents.length === 0 ? (\n <Tooltip\n content={t('notebook.view.input.disabledTooltip')}\n position=\"top\"\n >\n <div>\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton={false}\n hasStopButton={false}\n isSendButtonDisabled\n isDisabled\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n </div>\n </Tooltip>\n ) : (\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton\n hasStopButton={false}\n isSendButtonDisabled={isSendButtonDisabled}\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n )}\n <ChatbotFootnote label={t('footer.accuracy.label')} />\n </ChatbotFooter>\n </div>\n </div>\n </DrawerContentBody>\n </DrawerContent>\n </Drawer>\n\n <AddDocumentModal\n isOpen={isUploadModalOpen}\n onClose={handleCloseUploadModal}\n sessionId={sessionId}\n existingDocumentNames={documents.map(d => d.title)}\n onFilesUploading={handleFilesUploading}\n onUploadStarted={handleUploadStarted}\n onUploadFailed={handleUploadFailed}\n onDuplicatesFound={handleDuplicatesFound}\n filesToAdd={filesToAddToModal}\n onFilesAdded={handleFilesAddedToModal}\n />\n\n <OverwriteConfirmModal\n isOpen={isOverwriteModalOpen}\n onClose={handleOverwriteCancel}\n onConfirm={handleOverwriteConfirm}\n fileNames={filesToOverwrite.map(f => f.name)}\n />\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NotebookView.esm.js","sources":["../../../src/components/notebooks/NotebookView.tsx"],"sourcesContent":["/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useCallback, useEffect, useRef, useState } from 'react';\n\nimport { useApi } from '@backstage/core-plugin-api';\n\nimport { makeStyles, Typography } from '@material-ui/core';\nimport {\n ChatbotContent,\n ChatbotFooter,\n ChatbotFootnote,\n ChatbotWelcomePrompt,\n MessageBar,\n MessageProps,\n} from '@patternfly/chatbot';\nimport {\n Alert,\n AlertActionCloseButton,\n AlertGroup,\n AlertVariant,\n Button,\n Drawer,\n DrawerContent,\n DrawerContentBody,\n DrawerPanelContent,\n Tooltip,\n type AlertProps,\n} from '@patternfly/react-core';\nimport { TimesIcon } from '@patternfly/react-icons';\nimport { useQueryClient } from '@tanstack/react-query';\n\nimport { notebooksApiRef } from '../../api/notebooksApi';\nimport {\n NOTEBOOK_MAX_FILES,\n TEMP_CONVERSATION_ID,\n UNTITLED_NOTEBOOK_NAME,\n} from '../../const';\nimport { useCreateNotebookMessage } from '../../hooks/notebooks/useCreateNotebookMessage';\nimport {\n useDocumentStatusPolling,\n type PendingUpload,\n} from '../../hooks/notebooks/useDocumentStatusPolling';\nimport { useConversationMessages } from '../../hooks/useConversationMessages';\nimport { CreateMessageVariables } from '../../hooks/useCreateCoversationMessage';\nimport { useTranslation } from '../../hooks/useTranslation';\nimport { useWelcomePrompts } from '../../hooks/useWelcomePrompts';\nimport { NotebookSessionMetadata, SessionDocument } from '../../types';\nimport { LightspeedChatBox } from '../LightspeedChatBox';\nimport { AddDocumentModal } from './AddDocumentModal';\nimport { DocumentSidebar } from './DocumentSidebar';\nimport { OverwriteConfirmModal } from './OverwriteConfirmModal';\nimport { AddCircleFilledIcon, SidebarExpandIcon } from './SidebarCollapseIcon';\nimport { UploadResourceScreen } from './UploadResourceScreen';\n\nconst useStyles = makeStyles(theme => ({\n root: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n height: '100%',\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n },\n drawerContainer: {\n flex: 1,\n minHeight: 0,\n },\n expandStrip: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n paddingTop: theme.spacing(1.5),\n gap: theme.spacing(1),\n borderRight: '1px solid var(--pf-t--global--border--color--default)',\n },\n addIconButton: {\n padding: 0,\n minWidth: 0,\n lineHeight: 1,\n },\n mainArea: {\n display: 'flex',\n flexDirection: 'row',\n height: '100%',\n minWidth: 0,\n },\n topBar: {\n display: 'flex',\n justifyContent: 'flex-end',\n padding: `${theme.spacing(1.5)}px ${theme.spacing(2)}px`,\n },\n closeButton: {\n textTransform: 'none',\n },\n mainContent: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n },\n drawerContentBody: {\n backgroundColor: 'var(--pf-t--global--background--color--primary--default)',\n height: '100%',\n },\n contentColumn: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minWidth: 0,\n minHeight: 0,\n overflow: 'hidden',\n },\n alertContainer: {\n width: '95%',\n maxWidth: 'unset',\n margin: '0 auto',\n padding: `0 0 ${theme.spacing(1)}px`,\n },\n toastAlertGroup: {\n '--pf-v6-c-alert-group--m-toast--InsetInlineEnd': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--InsetBlockStart': `${theme.spacing(2.5)}px`,\n '--pf-v6-c-alert-group--m-toast--MaxWidth': '350px',\n },\n toastAlert: {\n maxWidth: '350px',\n '& .pf-v6-c-alert__title': {\n margin: 0,\n },\n },\n welcomeContainer: {\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n minHeight: 0,\n overflow: 'auto',\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n notebookEmptyUpload: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n minHeight: 0,\n backgroundColor:\n 'var(--pf-t--global--background--color--floating--default)',\n },\n notebookContentArea: {\n width: '95%',\n maxWidth: 'unset',\n margin: `${theme.spacing(3)}px auto 0 auto`,\n padding: 0,\n },\n notebookHeading: {\n fontSize: '2rem',\n fontWeight: 500,\n lineHeight: 1.25,\n padding: `${theme.spacing(1)}px 0`,\n },\n notebookSummary: {\n fontSize: '1rem',\n lineHeight: 2,\n color: 'var(--pf-t--global--text--color--regular)',\n paddingTop: theme.spacing(0.5),\n },\n promptSuggestions: {\n width: '95%',\n maxWidth: 'unset',\n margin: '0 auto',\n },\n footerAlignedAlert: {\n maxWidth: 'unset',\n width: '95%',\n margin: '0 auto',\n padding: `0 0 ${theme.spacing(1)}px`,\n },\n footer: {\n backgroundColor: theme.palette.background.paper,\n '&>.pf-chatbot__footer-container': {\n width: '95% !important',\n maxWidth: 'unset !important',\n },\n '& .pf-chatbot__message-bar': {\n backgroundColor: theme.palette.grey[300],\n },\n },\n chatContent: {\n minHeight: 0,\n display: 'flex',\n flexDirection: 'column',\n flex: 1,\n overflow: 'auto',\n },\n}));\n\ntype NotebookViewProps = {\n sessionId: string;\n notebookName?: string;\n documents?: SessionDocument[];\n metadata?: NotebookSessionMetadata;\n topicSummary?: string;\n userName?: string;\n avatar?: string;\n profileLoading: boolean;\n topicRestrictionEnabled: boolean;\n selectedModel: string;\n onClose: () => void;\n};\n\nexport const NotebookView = ({\n sessionId,\n notebookName = UNTITLED_NOTEBOOK_NAME,\n documents = [],\n metadata,\n topicSummary,\n userName,\n avatar,\n profileLoading,\n topicRestrictionEnabled,\n selectedModel,\n onClose,\n}: NotebookViewProps) => {\n const classes = useStyles();\n const { t } = useTranslation();\n const queryClient = useQueryClient();\n const notebooksApi = useApi(notebooksApiRef);\n const { mutateAsync: notebookCreateMessage } = useCreateNotebookMessage();\n\n const [conversationId, setConversationId] = useState(\n metadata?.conversation_id ?? TEMP_CONVERSATION_ID,\n );\n const [isSendButtonDisabled, setIsSendButtonDisabled] = useState(false);\n const [announcement, setAnnouncement] = useState<string | undefined>(\n undefined,\n );\n const [deletingDocumentIds, setDeletingDocumentIds] = useState<Set<string>>(\n new Set(),\n );\n\n const handleDeleteDocument = useCallback(\n async (documentId: string) => {\n setDeletingDocumentIds(prev => new Set(prev).add(documentId));\n try {\n await notebooksApi.deleteDocument(sessionId, documentId);\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n } finally {\n setDeletingDocumentIds(prev => {\n const next = new Set(prev);\n next.delete(documentId);\n return next;\n });\n }\n },\n [notebooksApi, sessionId, queryClient],\n );\n\n const onComplete = useCallback(\n (message: string) => {\n setIsSendButtonDisabled(false);\n setAnnouncement(`Message from Bot: ${message}`);\n queryClient.invalidateQueries({\n queryKey: ['conversationMessages', conversationId],\n });\n },\n [queryClient, conversationId],\n );\n\n const onStart = useCallback((conv_id: string) => {\n setConversationId(conv_id);\n }, []);\n\n const createMessageAdapter = useCallback(\n async (vars: CreateMessageVariables) => {\n return notebookCreateMessage({\n prompt: vars.prompt,\n sessionId,\n });\n },\n [notebookCreateMessage, sessionId],\n );\n\n const { conversationMessages, handleInputPrompt, scrollToBottomRef } =\n useConversationMessages(\n conversationId,\n userName,\n selectedModel,\n '',\n avatar,\n onComplete,\n onStart,\n createMessageAdapter,\n );\n\n const [messages, setMessages] =\n useState<MessageProps[]>(conversationMessages);\n\n useEffect(() => {\n setMessages(conversationMessages);\n }, [conversationMessages]);\n\n const sendMessage = useCallback(\n (message: string | number) => {\n setAnnouncement(\n t('conversation.announcement.userMessage' as any, {\n prompt: message.toString(),\n }),\n );\n handleInputPrompt(message.toString(), []);\n setIsSendButtonDisabled(true);\n },\n [handleInputPrompt, t],\n );\n\n const samplePrompts = useWelcomePrompts();\n const welcomePrompts =\n samplePrompts?.map(prompt => {\n const p = prompt as { title: string; message: string };\n return {\n title: p.title,\n message: p.message,\n onClick: () => sendMessage(p.message),\n };\n }) ?? [];\n\n const [sidebarCollapsed, setSidebarCollapsed] = useState(false);\n const [isUploadModalOpen, setIsUploadModalOpen] = useState(false);\n const [uploadingFileNames, setUploadingFileNames] = useState<string[]>([]);\n const [pendingUploads, setPendingUploads] = useState<PendingUpload[]>([]);\n const [toastAlerts, setToastAlerts] = useState<Partial<AlertProps>[]>([]);\n const processedIds = useRef<Set<string>>(new Set());\n const [completedFileNames, setCompletedFileNames] = useState<Set<string>>(\n new Set(),\n );\n const [filesToOverwrite, setFilesToOverwrite] = useState<File[]>([]);\n const [isOverwriteModalOpen, setIsOverwriteModalOpen] = useState(false);\n const [filesToAddToModal, setFilesToAddToModal] = useState<File[]>([]);\n\n const handleOpenUploadModal = () => setIsUploadModalOpen(true);\n const handleCloseUploadModal = () => setIsUploadModalOpen(false);\n\n const handleFilesUploading = (files: File[]) => {\n setUploadingFileNames(prev => {\n const newNames = files\n .map(f => f.name)\n .filter(name => !prev.includes(name));\n return [...prev, ...newNames];\n });\n };\n\n const handleUploadStarted = (info: {\n fileName: string;\n documentId: string;\n }) => {\n processedIds.current.delete(info.documentId);\n setPendingUploads(prev => [\n ...prev,\n { fileName: info.fileName, documentId: info.documentId },\n ]);\n };\n\n const handleUploadFailed = (fileName: string) => {\n setUploadingFileNames(prev => prev.filter(n => n !== fileName));\n setToastAlerts(prev => [\n {\n key: Date.now() + fileName,\n title: (t as Function)('notebook.upload.failed', {\n fileName,\n }) as string,\n variant: 'danger',\n },\n ...prev,\n ]);\n };\n\n const handleDuplicatesFound = (files: File[]) => {\n setFilesToOverwrite(files);\n setIsOverwriteModalOpen(true);\n };\n\n const handleOverwriteConfirm = () => {\n const files = filesToOverwrite;\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n\n if (files.length === 0) return;\n\n setFilesToAddToModal(files);\n };\n\n const handleFilesAddedToModal = () => {\n setFilesToAddToModal([]);\n };\n\n const handleOverwriteCancel = () => {\n setIsOverwriteModalOpen(false);\n setFilesToOverwrite([]);\n };\n\n const pollingResults = useDocumentStatusPolling(sessionId, pendingUploads);\n\n useEffect(() => {\n const completedOrFailed = pollingResults.filter(\n r =>\n (r.status === 'completed' ||\n r.status === 'failed' ||\n r.status === 'cancelled') &&\n !processedIds.current.has(r.documentId),\n );\n\n if (completedOrFailed.length === 0) return;\n\n const idsToRemove = new Set<string>();\n const namesToRemove = new Set<string>();\n const newAlerts: Partial<AlertProps>[] = [];\n\n const newCompletedNames = new Set<string>();\n\n for (const result of completedOrFailed) {\n processedIds.current.add(result.documentId);\n idsToRemove.add(result.documentId);\n namesToRemove.add(result.fileName);\n if (result.status === 'completed') {\n newCompletedNames.add(result.fileName);\n }\n\n if (result.status === 'completed') {\n newAlerts.push({\n key: Date.now() + result.documentId,\n title: (t as Function)('notebook.upload.success', {\n fileName: result.fileName,\n }) as string,\n variant: 'success',\n });\n } else {\n newAlerts.push({\n key: Date.now() + result.documentId,\n title: (t as Function)('notebook.upload.failed', {\n fileName: result.fileName,\n }) as string,\n variant: 'danger',\n });\n }\n }\n\n setPendingUploads(prev => prev.filter(u => !idsToRemove.has(u.documentId)));\n setUploadingFileNames(prev =>\n prev.filter(name => !namesToRemove.has(name)),\n );\n if (newCompletedNames.size > 0) {\n setCompletedFileNames(prev => new Set([...prev, ...newCompletedNames]));\n queryClient.invalidateQueries({\n queryKey: ['notebooks', 'documents', sessionId],\n });\n }\n setToastAlerts(prev => [...newAlerts, ...prev]);\n }, [pollingResults, t, queryClient, sessionId]);\n\n const handleRemoveToastAlert = (key: React.Key) => {\n setToastAlerts(prev => prev.filter(a => a.key !== key));\n };\n\n const hasDocuments = documents.length > 0 || uploadingFileNames.length > 0;\n const totalDocumentCount = documents.length + uploadingFileNames.length;\n const isAddDisabled = totalDocumentCount >= NOTEBOOK_MAX_FILES;\n\n const panelContent = (\n <DrawerPanelContent\n isResizable\n defaultSize=\"310px\"\n minSize=\"232px\"\n maxSize=\"50%\"\n resizeAriaLabel={t('notebook.view.sidebar.resize')}\n >\n <DocumentSidebar\n notebookName={notebookName}\n documents={documents}\n uploadingFileNames={uploadingFileNames}\n completedFileNames={completedFileNames}\n deletingDocumentIds={deletingDocumentIds}\n collapsed={sidebarCollapsed}\n onToggleCollapse={() => setSidebarCollapsed(prev => !prev)}\n onAddDocument={handleOpenUploadModal}\n onDeleteDocument={handleDeleteDocument}\n />\n </DrawerPanelContent>\n );\n\n const renderMainContent = () => {\n if (!hasDocuments && messages.length === 0) {\n return (\n <Typography component=\"span\" className={classes.notebookEmptyUpload}>\n <UploadResourceScreen onUploadClick={handleOpenUploadModal} />\n </Typography>\n );\n }\n if (messages.length > 0) {\n return (\n <ChatbotContent className={classes.chatContent}>\n <LightspeedChatBox\n userName={userName}\n messages={messages}\n profileLoading={profileLoading}\n announcement={announcement}\n ref={scrollToBottomRef}\n welcomePrompts={[]}\n conversationId={conversationId}\n isStreaming={isSendButtonDisabled}\n topicRestrictionEnabled={topicRestrictionEnabled}\n />\n </ChatbotContent>\n );\n }\n return (\n <div className={classes.welcomeContainer}>\n <div className={classes.alertContainer}>\n <Alert isInline variant=\"info\" title={t('aria.important')}>\n {t('disclaimer.withoutValidation')}\n </Alert>\n </div>\n <div className={classes.notebookContentArea}>\n <Typography className={classes.notebookHeading}>\n {notebookName}\n </Typography>\n {topicSummary && (\n <Typography className={classes.notebookSummary}>\n {topicSummary}\n </Typography>\n )}\n </div>\n {welcomePrompts.length > 0 && (\n <div className={classes.promptSuggestions}>\n <ChatbotWelcomePrompt\n title=\"\"\n description=\"\"\n prompts={welcomePrompts}\n />\n </div>\n )}\n </div>\n );\n };\n\n return (\n <div className={classes.root}>\n {toastAlerts.length > 0 && (\n <AlertGroup\n hasAnimations\n isToast\n isLiveRegion\n className={classes.toastAlertGroup}\n >\n {toastAlerts.map(({ key, title, variant }) => (\n <Alert\n key={key}\n variant={AlertVariant[variant ?? 'success']}\n title={title}\n className={classes.toastAlert}\n timeout={2000}\n onTimeout={() => handleRemoveToastAlert(key as React.Key)}\n actionClose={\n <AlertActionCloseButton\n title={title as string}\n variantLabel={`${variant ?? 'success'} alert`}\n onClose={() => handleRemoveToastAlert(key as React.Key)}\n />\n }\n />\n ))}\n </AlertGroup>\n )}\n <Drawer\n isExpanded={!sidebarCollapsed}\n isInline\n position=\"start\"\n className={classes.drawerContainer}\n >\n <DrawerContent\n panelContent={!sidebarCollapsed ? panelContent : undefined}\n >\n <DrawerContentBody className={classes.drawerContentBody}>\n <div className={classes.mainArea}>\n {sidebarCollapsed && (\n <div className={classes.expandStrip}>\n <Tooltip\n content={t('notebook.view.sidebar.expand')}\n position=\"right\"\n >\n <Button\n variant=\"plain\"\n onClick={() => setSidebarCollapsed(false)}\n aria-label={t('notebook.view.sidebar.expand')}\n size=\"sm\"\n >\n <SidebarExpandIcon />\n </Button>\n </Tooltip>\n <Tooltip\n content={\n isAddDisabled\n ? t('notebook.view.documents.maxReached')\n : t('notebook.view.documents.add')\n }\n position=\"right\"\n >\n <Typography component=\"span\">\n <Button\n variant=\"plain\"\n className={classes.addIconButton}\n onClick={\n isAddDisabled ? undefined : handleOpenUploadModal\n }\n aria-label={t('notebook.view.documents.add')}\n isDisabled={isAddDisabled}\n >\n <AddCircleFilledIcon disabled={isAddDisabled} />\n </Button>\n </Typography>\n </Tooltip>\n </div>\n )}\n\n <div className={classes.contentColumn}>\n <div className={classes.topBar}>\n <Button\n variant=\"link\"\n className={classes.closeButton}\n onClick={onClose}\n icon={<TimesIcon />}\n iconPosition=\"end\"\n >\n {t('notebook.view.close')}\n </Button>\n </div>\n\n <div className={classes.mainContent}>{renderMainContent()}</div>\n\n {!hasDocuments && messages.length === 0 && (\n <div className={classes.footerAlignedAlert}>\n <Alert isInline variant=\"info\" title={t('aria.important')}>\n {t('disclaimer.withoutValidation')}\n </Alert>\n </div>\n )}\n\n <ChatbotFooter className={classes.footer}>\n {documents.length === 0 ? (\n <Tooltip\n content={t('notebook.view.input.disabledTooltip')}\n position=\"top\"\n >\n <div>\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton={false}\n hasStopButton={false}\n isSendButtonDisabled\n isDisabled\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n </div>\n </Tooltip>\n ) : (\n <MessageBar\n hasAttachButton={false}\n hasMicrophoneButton\n hasStopButton={false}\n isSendButtonDisabled={isSendButtonDisabled}\n onSendMessage={sendMessage}\n placeholder={t('notebook.view.input.placeholder')}\n />\n )}\n <ChatbotFootnote label={t('footer.accuracy.label')} />\n </ChatbotFooter>\n </div>\n </div>\n </DrawerContentBody>\n </DrawerContent>\n </Drawer>\n\n <AddDocumentModal\n isOpen={isUploadModalOpen}\n onClose={handleCloseUploadModal}\n sessionId={sessionId}\n existingDocumentNames={documents.map(d => d.title)}\n onFilesUploading={handleFilesUploading}\n onUploadStarted={handleUploadStarted}\n onUploadFailed={handleUploadFailed}\n onDuplicatesFound={handleDuplicatesFound}\n filesToAdd={filesToAddToModal}\n onFilesAdded={handleFilesAddedToModal}\n />\n\n <OverwriteConfirmModal\n isOpen={isOverwriteModalOpen}\n onClose={handleOverwriteCancel}\n onConfirm={handleOverwriteConfirm}\n fileNames={filesToOverwrite.map(f => f.name)}\n />\n </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAoEA,MAAM,SAAA,GAAY,WAAW,CAAA,KAAA,MAAU;AAAA,EACrC,IAAA,EAAM;AAAA,IACJ,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,CAAA;AAAA,IACX,MAAA,EAAQ,MAAA;AAAA,IACR,eAAA,EAAiB;AAAA,GACnB;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,UAAA,EAAY,QAAA;AAAA,IACZ,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAA;AAAA,IAC7B,GAAA,EAAK,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAA;AAAA,IACpB,WAAA,EAAa;AAAA,GACf;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,CAAA;AAAA,IACT,QAAA,EAAU,CAAA;AAAA,IACV,UAAA,EAAY;AAAA,GACd;AAAA,EACA,QAAA,EAAU;AAAA,IACR,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,KAAA;AAAA,IACf,MAAA,EAAQ,MAAA;AAAA,IACR,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,cAAA,EAAgB,UAAA;AAAA,IAChB,OAAA,EAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,GAAA,EAAM,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA;AAAA,GACtD;AAAA,EACA,WAAA,EAAa;AAAA,IACX,aAAA,EAAe;AAAA,GACjB;AAAA,EACA,WAAA,EAAa;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW;AAAA,GACb;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,eAAA,EAAiB,0DAAA;AAAA,IACjB,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,aAAA,EAAe;AAAA,IACb,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU,CAAA;AAAA,IACV,SAAA,EAAW,CAAA;AAAA,IACX,QAAA,EAAU;AAAA,GACZ;AAAA,EACA,cAAA,EAAgB;AAAA,IACd,KAAA,EAAO,KAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,MAAA,EAAQ,QAAA;AAAA,IACR,OAAA,EAAS,CAAA,IAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA;AAAA,GAClC;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,gDAAA,EAAkD,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,EAAA,CAAA;AAAA,IACvE,iDAAA,EAAmD,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,GAAG,CAAC,CAAA,EAAA,CAAA;AAAA,IACxE,0CAAA,EAA4C;AAAA,GAC9C;AAAA,EACA,UAAA,EAAY;AAAA,IACV,QAAA,EAAU,OAAA;AAAA,IACV,yBAAA,EAA2B;AAAA,MACzB,MAAA,EAAQ;AAAA;AACV,GACF;AAAA,EACA,gBAAA,EAAkB;AAAA,IAChB,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,SAAA,EAAW,CAAA;AAAA,IACX,QAAA,EAAU,MAAA;AAAA,IACV,eAAA,EACE;AAAA,GACJ;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,IAAA,EAAM,CAAA;AAAA,IACN,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,SAAA,EAAW,CAAA;AAAA,IACX,eAAA,EACE;AAAA,GACJ;AAAA,EACA,mBAAA,EAAqB;AAAA,IACnB,KAAA,EAAO,KAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,MAAA,EAAQ,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,cAAA,CAAA;AAAA,IAC3B,OAAA,EAAS;AAAA,GACX;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,GAAA;AAAA,IACZ,UAAA,EAAY,IAAA;AAAA,IACZ,OAAA,EAAS,CAAA,EAAG,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,IAAA;AAAA,GAC9B;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,QAAA,EAAU,MAAA;AAAA,IACV,UAAA,EAAY,CAAA;AAAA,IACZ,KAAA,EAAO,2CAAA;AAAA,IACP,UAAA,EAAY,KAAA,CAAM,OAAA,CAAQ,GAAG;AAAA,GAC/B;AAAA,EACA,iBAAA,EAAmB;AAAA,IACjB,KAAA,EAAO,KAAA;AAAA,IACP,QAAA,EAAU,OAAA;AAAA,IACV,MAAA,EAAQ;AAAA,GACV;AAAA,EACA,kBAAA,EAAoB;AAAA,IAClB,QAAA,EAAU,OAAA;AAAA,IACV,KAAA,EAAO,KAAA;AAAA,IACP,MAAA,EAAQ,QAAA;AAAA,IACR,OAAA,EAAS,CAAA,IAAA,EAAO,KAAA,CAAM,OAAA,CAAQ,CAAC,CAAC,CAAA,EAAA;AAAA,GAClC;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW,KAAA;AAAA,IAC1C,iCAAA,EAAmC;AAAA,MACjC,KAAA,EAAO,gBAAA;AAAA,MACP,QAAA,EAAU;AAAA,KACZ;AAAA,IACA,4BAAA,EAA8B;AAAA,MAC5B,eAAA,EAAiB,KAAA,CAAM,OAAA,CAAQ,IAAA,CAAK,GAAG;AAAA;AACzC,GACF;AAAA,EACA,WAAA,EAAa;AAAA,IACX,SAAA,EAAW,CAAA;AAAA,IACX,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,IAAA,EAAM,CAAA;AAAA,IACN,QAAA,EAAU;AAAA;AAEd,CAAA,CAAE,CAAA;AAgBK,MAAM,eAAe,CAAC;AAAA,EAC3B,SAAA;AAAA,EACA,YAAA,GAAe,sBAAA;AAAA,EACf,YAAY,EAAC;AAAA,EACb,QAAA;AAAA,EACA,YAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,cAAA;AAAA,EACA,uBAAA;AAAA,EACA,aAAA;AAAA,EACA;AACF,CAAA,KAAyB;AACvB,EAAA,MAAM,UAAU,SAAA,EAAU;AAC1B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,cAAc,cAAA,EAAe;AACnC,EAAA,MAAM,YAAA,GAAe,OAAO,eAAe,CAAA;AAC3C,EAAA,MAAM,EAAE,WAAA,EAAa,qBAAA,EAAsB,GAAI,wBAAA,EAAyB;AAExE,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,QAAA;AAAA,IAC1C,UAAU,eAAA,IAAmB;AAAA,GAC/B;AACA,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,SAAS,KAAK,CAAA;AACtE,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAI,QAAA;AAAA,IACtC;AAAA,GACF;AACA,EAAA,MAAM,CAAC,mBAAA,EAAqB,sBAAsB,CAAA,GAAI,QAAA;AAAA,wBAChD,GAAA;AAAI,GACV;AAEA,EAAA,MAAM,oBAAA,GAAuB,WAAA;AAAA,IAC3B,OAAO,UAAA,KAAuB;AAC5B,MAAA,sBAAA,CAAuB,UAAQ,IAAI,GAAA,CAAI,IAAI,CAAA,CAAE,GAAA,CAAI,UAAU,CAAC,CAAA;AAC5D,MAAA,IAAI;AACF,QAAA,MAAM,YAAA,CAAa,cAAA,CAAe,SAAA,EAAW,UAAU,CAAA;AACvD,QAAA,WAAA,CAAY,iBAAA,CAAkB;AAAA,UAC5B,QAAA,EAAU,CAAC,WAAA,EAAa,WAAA,EAAa,SAAS;AAAA,SAC/C,CAAA;AAAA,MACH,CAAA,SAAE;AACA,QAAA,sBAAA,CAAuB,CAAA,IAAA,KAAQ;AAC7B,UAAA,MAAM,IAAA,GAAO,IAAI,GAAA,CAAI,IAAI,CAAA;AACzB,UAAA,IAAA,CAAK,OAAO,UAAU,CAAA;AACtB,UAAA,OAAO,IAAA;AAAA,QACT,CAAC,CAAA;AAAA,MACH;AAAA,IACF,CAAA;AAAA,IACA,CAAC,YAAA,EAAc,SAAA,EAAW,WAAW;AAAA,GACvC;AAEA,EAAA,MAAM,UAAA,GAAa,WAAA;AAAA,IACjB,CAAC,OAAA,KAAoB;AACnB,MAAA,uBAAA,CAAwB,KAAK,CAAA;AAC7B,MAAA,eAAA,CAAgB,CAAA,kBAAA,EAAqB,OAAO,CAAA,CAAE,CAAA;AAC9C,MAAA,WAAA,CAAY,iBAAA,CAAkB;AAAA,QAC5B,QAAA,EAAU,CAAC,sBAAA,EAAwB,cAAc;AAAA,OAClD,CAAA;AAAA,IACH,CAAA;AAAA,IACA,CAAC,aAAa,cAAc;AAAA,GAC9B;AAEA,EAAA,MAAM,OAAA,GAAU,WAAA,CAAY,CAAC,OAAA,KAAoB;AAC/C,IAAA,iBAAA,CAAkB,OAAO,CAAA;AAAA,EAC3B,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,oBAAA,GAAuB,WAAA;AAAA,IAC3B,OAAO,IAAA,KAAiC;AACtC,MAAA,OAAO,qBAAA,CAAsB;AAAA,QAC3B,QAAQ,IAAA,CAAK,MAAA;AAAA,QACb;AAAA,OACD,CAAA;AAAA,IACH,CAAA;AAAA,IACA,CAAC,uBAAuB,SAAS;AAAA,GACnC;AAEA,EAAA,MAAM,EAAE,oBAAA,EAAsB,iBAAA,EAAmB,iBAAA,EAAkB,GACjE,uBAAA;AAAA,IACE,cAAA;AAAA,IACA,QAAA;AAAA,IACA,aAAA;AAAA,IACA,EAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF;AAEF,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAC1B,SAAyB,oBAAoB,CAAA;AAE/C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,oBAAoB,CAAA;AAAA,EAClC,CAAA,EAAG,CAAC,oBAAoB,CAAC,CAAA;AAEzB,EAAA,MAAM,WAAA,GAAc,WAAA;AAAA,IAClB,CAAC,OAAA,KAA6B;AAC5B,MAAA,eAAA;AAAA,QACE,EAAE,uCAAA,EAAgD;AAAA,UAChD,MAAA,EAAQ,QAAQ,QAAA;AAAS,SAC1B;AAAA,OACH;AACA,MAAA,iBAAA,CAAkB,OAAA,CAAQ,QAAA,EAAS,EAAG,EAAE,CAAA;AACxC,MAAA,uBAAA,CAAwB,IAAI,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,CAAC,mBAAmB,CAAC;AAAA,GACvB;AAEA,EAAA,MAAM,gBAAgB,iBAAA,EAAkB;AACxC,EAAA,MAAM,cAAA,GACJ,aAAA,EAAe,GAAA,CAAI,CAAA,MAAA,KAAU;AAC3B,IAAA,MAAM,CAAA,GAAI,MAAA;AACV,IAAA,OAAO;AAAA,MACL,OAAO,CAAA,CAAE,KAAA;AAAA,MACT,SAAS,CAAA,CAAE,OAAA;AAAA,MACX,OAAA,EAAS,MAAM,WAAA,CAAY,CAAA,CAAE,OAAO;AAAA,KACtC;AAAA,EACF,CAAC,KAAK,EAAC;AAET,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,SAAS,KAAK,CAAA;AAC9D,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,SAAS,KAAK,CAAA;AAChE,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,QAAA,CAAmB,EAAE,CAAA;AACzE,EAAA,MAAM,CAAC,cAAA,EAAgB,iBAAiB,CAAA,GAAI,QAAA,CAA0B,EAAE,CAAA;AACxE,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,QAAA,CAAgC,EAAE,CAAA;AACxE,EAAA,MAAM,YAAA,GAAe,MAAA,iBAAoB,IAAI,GAAA,EAAK,CAAA;AAClD,EAAA,MAAM,CAAC,kBAAA,EAAoB,qBAAqB,CAAA,GAAI,QAAA;AAAA,wBAC9C,GAAA;AAAI,GACV;AACA,EAAA,MAAM,CAAC,gBAAA,EAAkB,mBAAmB,CAAA,GAAI,QAAA,CAAiB,EAAE,CAAA;AACnE,EAAA,MAAM,CAAC,oBAAA,EAAsB,uBAAuB,CAAA,GAAI,SAAS,KAAK,CAAA;AACtE,EAAA,MAAM,CAAC,iBAAA,EAAmB,oBAAoB,CAAA,GAAI,QAAA,CAAiB,EAAE,CAAA;AAErE,EAAA,MAAM,qBAAA,GAAwB,MAAM,oBAAA,CAAqB,IAAI,CAAA;AAC7D,EAAA,MAAM,sBAAA,GAAyB,MAAM,oBAAA,CAAqB,KAAK,CAAA;AAE/D,EAAA,MAAM,oBAAA,GAAuB,CAAC,KAAA,KAAkB;AAC9C,IAAA,qBAAA,CAAsB,CAAA,IAAA,KAAQ;AAC5B,MAAA,MAAM,QAAA,GAAW,KAAA,CACd,GAAA,CAAI,CAAA,CAAA,KAAK,CAAA,CAAE,IAAI,CAAA,CACf,MAAA,CAAO,CAAA,IAAA,KAAQ,CAAC,IAAA,CAAK,QAAA,CAAS,IAAI,CAAC,CAAA;AACtC,MAAA,OAAO,CAAC,GAAG,IAAA,EAAM,GAAG,QAAQ,CAAA;AAAA,IAC9B,CAAC,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,mBAAA,GAAsB,CAAC,IAAA,KAGvB;AACJ,IAAA,YAAA,CAAa,OAAA,CAAQ,MAAA,CAAO,IAAA,CAAK,UAAU,CAAA;AAC3C,IAAA,iBAAA,CAAkB,CAAA,IAAA,KAAQ;AAAA,MACxB,GAAG,IAAA;AAAA,MACH,EAAE,QAAA,EAAU,IAAA,CAAK,QAAA,EAAU,UAAA,EAAY,KAAK,UAAA;AAAW,KACxD,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,kBAAA,GAAqB,CAAC,QAAA,KAAqB;AAC/C,IAAA,qBAAA,CAAsB,UAAQ,IAAA,CAAK,MAAA,CAAO,CAAA,CAAA,KAAK,CAAA,KAAM,QAAQ,CAAC,CAAA;AAC9D,IAAA,cAAA,CAAe,CAAA,IAAA,KAAQ;AAAA,MACrB;AAAA,QACE,GAAA,EAAK,IAAA,CAAK,GAAA,EAAI,GAAI,QAAA;AAAA,QAClB,KAAA,EAAQ,EAAe,wBAAA,EAA0B;AAAA,UAC/C;AAAA,SACD,CAAA;AAAA,QACD,OAAA,EAAS;AAAA,OACX;AAAA,MACA,GAAG;AAAA,KACJ,CAAA;AAAA,EACH,CAAA;AAEA,EAAA,MAAM,qBAAA,GAAwB,CAAC,KAAA,KAAkB;AAC/C,IAAA,mBAAA,CAAoB,KAAK,CAAA;AACzB,IAAA,uBAAA,CAAwB,IAAI,CAAA;AAAA,EAC9B,CAAA;AAEA,EAAA,MAAM,yBAAyB,MAAM;AACnC,IAAA,MAAM,KAAA,GAAQ,gBAAA;AACd,IAAA,uBAAA,CAAwB,KAAK,CAAA;AAC7B,IAAA,mBAAA,CAAoB,EAAE,CAAA;AAEtB,IAAA,IAAI,KAAA,CAAM,WAAW,CAAA,EAAG;AAExB,IAAA,oBAAA,CAAqB,KAAK,CAAA;AAAA,EAC5B,CAAA;AAEA,EAAA,MAAM,0BAA0B,MAAM;AACpC,IAAA,oBAAA,CAAqB,EAAE,CAAA;AAAA,EACzB,CAAA;AAEA,EAAA,MAAM,wBAAwB,MAAM;AAClC,IAAA,uBAAA,CAAwB,KAAK,CAAA;AAC7B,IAAA,mBAAA,CAAoB,EAAE,CAAA;AAAA,EACxB,CAAA;AAEA,EAAA,MAAM,cAAA,GAAiB,wBAAA,CAAyB,SAAA,EAAW,cAAc,CAAA;AAEzE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,oBAAoB,cAAA,CAAe,MAAA;AAAA,MACvC,CAAA,CAAA,KAAA,CACG,CAAA,CAAE,MAAA,KAAW,WAAA,IACZ,EAAE,MAAA,KAAW,QAAA,IACb,CAAA,CAAE,MAAA,KAAW,gBACf,CAAC,YAAA,CAAa,OAAA,CAAQ,GAAA,CAAI,EAAE,UAAU;AAAA,KAC1C;AAEA,IAAA,IAAI,iBAAA,CAAkB,WAAW,CAAA,EAAG;AAEpC,IAAA,MAAM,WAAA,uBAAkB,GAAA,EAAY;AACpC,IAAA,MAAM,aAAA,uBAAoB,GAAA,EAAY;AACtC,IAAA,MAAM,YAAmC,EAAC;AAE1C,IAAA,MAAM,iBAAA,uBAAwB,GAAA,EAAY;AAE1C,IAAA,KAAA,MAAW,UAAU,iBAAA,EAAmB;AACtC,MAAA,YAAA,CAAa,OAAA,CAAQ,GAAA,CAAI,MAAA,CAAO,UAAU,CAAA;AAC1C,MAAA,WAAA,CAAY,GAAA,CAAI,OAAO,UAAU,CAAA;AACjC,MAAA,aAAA,CAAc,GAAA,CAAI,OAAO,QAAQ,CAAA;AACjC,MAAA,IAAI,MAAA,CAAO,WAAW,WAAA,EAAa;AACjC,QAAA,iBAAA,CAAkB,GAAA,CAAI,OAAO,QAAQ,CAAA;AAAA,MACvC;AAEA,MAAA,IAAI,MAAA,CAAO,WAAW,WAAA,EAAa;AACjC,QAAA,SAAA,CAAU,IAAA,CAAK;AAAA,UACb,GAAA,EAAK,IAAA,CAAK,GAAA,EAAI,GAAI,MAAA,CAAO,UAAA;AAAA,UACzB,KAAA,EAAQ,EAAe,yBAAA,EAA2B;AAAA,YAChD,UAAU,MAAA,CAAO;AAAA,WAClB,CAAA;AAAA,UACD,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH,CAAA,MAAO;AACL,QAAA,SAAA,CAAU,IAAA,CAAK;AAAA,UACb,GAAA,EAAK,IAAA,CAAK,GAAA,EAAI,GAAI,MAAA,CAAO,UAAA;AAAA,UACzB,KAAA,EAAQ,EAAe,wBAAA,EAA0B;AAAA,YAC/C,UAAU,MAAA,CAAO;AAAA,WAClB,CAAA;AAAA,UACD,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAAA,IACF;AAEA,IAAA,iBAAA,CAAkB,CAAA,IAAA,KAAQ,IAAA,CAAK,MAAA,CAAO,CAAA,CAAA,KAAK,CAAC,YAAY,GAAA,CAAI,CAAA,CAAE,UAAU,CAAC,CAAC,CAAA;AAC1E,IAAA,qBAAA;AAAA,MAAsB,CAAA,IAAA,KACpB,KAAK,MAAA,CAAO,CAAA,IAAA,KAAQ,CAAC,aAAA,CAAc,GAAA,CAAI,IAAI,CAAC;AAAA,KAC9C;AACA,IAAA,IAAI,iBAAA,CAAkB,OAAO,CAAA,EAAG;AAC9B,MAAA,qBAAA,CAAsB,CAAA,IAAA,yBAAY,GAAA,CAAI,CAAC,GAAG,IAAA,EAAM,GAAG,iBAAiB,CAAC,CAAC,CAAA;AACtE,MAAA,WAAA,CAAY,iBAAA,CAAkB;AAAA,QAC5B,QAAA,EAAU,CAAC,WAAA,EAAa,WAAA,EAAa,SAAS;AAAA,OAC/C,CAAA;AAAA,IACH;AACA,IAAA,cAAA,CAAe,UAAQ,CAAC,GAAG,SAAA,EAAW,GAAG,IAAI,CAAC,CAAA;AAAA,EAChD,GAAG,CAAC,cAAA,EAAgB,CAAA,EAAG,WAAA,EAAa,SAAS,CAAC,CAAA;AAE9C,EAAA,MAAM,sBAAA,GAAyB,CAAC,GAAA,KAAmB;AACjD,IAAA,cAAA,CAAe,UAAQ,IAAA,CAAK,MAAA,CAAO,OAAK,CAAA,CAAE,GAAA,KAAQ,GAAG,CAAC,CAAA;AAAA,EACxD,CAAA;AAEA,EAAA,MAAM,YAAA,GAAe,SAAA,CAAU,MAAA,GAAS,CAAA,IAAK,mBAAmB,MAAA,GAAS,CAAA;AACzE,EAAA,MAAM,kBAAA,GAAqB,SAAA,CAAU,MAAA,GAAS,kBAAA,CAAmB,MAAA;AACjE,EAAA,MAAM,gBAAgB,kBAAA,IAAsB,kBAAA;AAE5C,EAAA,MAAM,YAAA,mBACJ,GAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAW,IAAA;AAAA,MACX,WAAA,EAAY,OAAA;AAAA,MACZ,OAAA,EAAQ,OAAA;AAAA,MACR,OAAA,EAAQ,KAAA;AAAA,MACR,eAAA,EAAiB,EAAE,8BAA8B,CAAA;AAAA,MAEjD,QAAA,kBAAA,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,YAAA;AAAA,UACA,SAAA;AAAA,UACA,kBAAA;AAAA,UACA,kBAAA;AAAA,UACA,mBAAA;AAAA,UACA,SAAA,EAAW,gBAAA;AAAA,UACX,gBAAA,EAAkB,MAAM,mBAAA,CAAoB,CAAA,IAAA,KAAQ,CAAC,IAAI,CAAA;AAAA,UACzD,aAAA,EAAe,qBAAA;AAAA,UACf,gBAAA,EAAkB;AAAA;AAAA;AACpB;AAAA,GACF;AAGF,EAAA,MAAM,oBAAoB,MAAM;AAC9B,IAAA,IAAI,CAAC,YAAA,IAAgB,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG;AAC1C,MAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,MAAA,EAAO,SAAA,EAAW,OAAA,CAAQ,mBAAA,EAC9C,QAAA,kBAAA,GAAA,CAAC,oBAAA,EAAA,EAAqB,aAAA,EAAe,qBAAA,EAAuB,CAAA,EAC9D,CAAA;AAAA,IAEJ;AACA,IAAA,IAAI,QAAA,CAAS,SAAS,CAAA,EAAG;AACvB,MAAA,uBACE,GAAA,CAAC,cAAA,EAAA,EAAe,SAAA,EAAW,OAAA,CAAQ,WAAA,EACjC,QAAA,kBAAA,GAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,QAAA;AAAA,UACA,QAAA;AAAA,UACA,cAAA;AAAA,UACA,YAAA;AAAA,UACA,GAAA,EAAK,iBAAA;AAAA,UACL,gBAAgB,EAAC;AAAA,UACjB,cAAA;AAAA,UACA,WAAA,EAAa,oBAAA;AAAA,UACb;AAAA;AAAA,OACF,EACF,CAAA;AAAA,IAEJ;AACA,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,gBAAA,EACtB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,SAAI,SAAA,EAAW,OAAA,CAAQ,cAAA,EACtB,QAAA,kBAAA,GAAA,CAAC,SAAM,QAAA,EAAQ,IAAA,EAAC,OAAA,EAAQ,MAAA,EAAO,OAAO,CAAA,CAAE,gBAAgB,GACrD,QAAA,EAAA,CAAA,CAAE,8BAA8B,GACnC,CAAA,EACF,CAAA;AAAA,sBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,mBAAA,EACtB,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,OAAA,CAAQ,eAAA,EAC5B,QAAA,EAAA,YAAA,EACH,CAAA;AAAA,QACC,gCACC,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAW,OAAA,CAAQ,iBAC5B,QAAA,EAAA,YAAA,EACH;AAAA,OAAA,EAEJ,CAAA;AAAA,MACC,eAAe,MAAA,GAAS,CAAA,wBACtB,KAAA,EAAA,EAAI,SAAA,EAAW,QAAQ,iBAAA,EACtB,QAAA,kBAAA,GAAA;AAAA,QAAC,oBAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAM,EAAA;AAAA,UACN,WAAA,EAAY,EAAA;AAAA,UACZ,OAAA,EAAS;AAAA;AAAA,OACX,EACF;AAAA,KAAA,EAEJ,CAAA;AAAA,EAEJ,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,IAAA,EACrB,QAAA,EAAA;AAAA,IAAA,WAAA,CAAY,SAAS,CAAA,oBACpB,GAAA;AAAA,MAAC,UAAA;AAAA,MAAA;AAAA,QACC,aAAA,EAAa,IAAA;AAAA,QACb,OAAA,EAAO,IAAA;AAAA,QACP,YAAA,EAAY,IAAA;AAAA,QACZ,WAAW,OAAA,CAAQ,eAAA;AAAA,QAElB,sBAAY,GAAA,CAAI,CAAC,EAAE,GAAA,EAAK,KAAA,EAAO,SAAQ,qBACtC,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,OAAA,EAAS,YAAA,CAAa,OAAA,IAAW,SAAS,CAAA;AAAA,YAC1C,KAAA;AAAA,YACA,WAAW,OAAA,CAAQ,UAAA;AAAA,YACnB,OAAA,EAAS,GAAA;AAAA,YACT,SAAA,EAAW,MAAM,sBAAA,CAAuB,GAAgB,CAAA;AAAA,YACxD,WAAA,kBACE,GAAA;AAAA,cAAC,sBAAA;AAAA,cAAA;AAAA,gBACC,KAAA;AAAA,gBACA,YAAA,EAAc,CAAA,EAAG,OAAA,IAAW,SAAS,CAAA,MAAA,CAAA;AAAA,gBACrC,OAAA,EAAS,MAAM,sBAAA,CAAuB,GAAgB;AAAA;AAAA;AACxD,WAAA;AAAA,UAXG;AAAA,SAcR;AAAA;AAAA,KACH;AAAA,oBAEF,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,YAAY,CAAC,gBAAA;AAAA,QACb,QAAA,EAAQ,IAAA;AAAA,QACR,QAAA,EAAS,OAAA;AAAA,QACT,WAAW,OAAA,CAAQ,eAAA;AAAA,QAEnB,QAAA,kBAAA,GAAA;AAAA,UAAC,aAAA;AAAA,UAAA;AAAA,YACC,YAAA,EAAc,CAAC,gBAAA,GAAmB,YAAA,GAAe,MAAA;AAAA,YAEjD,QAAA,kBAAA,GAAA,CAAC,qBAAkB,SAAA,EAAW,OAAA,CAAQ,mBACpC,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,QAAA,EACrB,QAAA,EAAA;AAAA,cAAA,gBAAA,oBACC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,WAAA,EACtB,QAAA,EAAA;AAAA,gCAAA,GAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAS,EAAE,8BAA8B,CAAA;AAAA,oBACzC,QAAA,EAAS,OAAA;AAAA,oBAET,QAAA,kBAAA,GAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,OAAA,EAAQ,OAAA;AAAA,wBACR,OAAA,EAAS,MAAM,mBAAA,CAAoB,KAAK,CAAA;AAAA,wBACxC,YAAA,EAAY,EAAE,8BAA8B,CAAA;AAAA,wBAC5C,IAAA,EAAK,IAAA;AAAA,wBAEL,8BAAC,iBAAA,EAAA,EAAkB;AAAA;AAAA;AACrB;AAAA,iBACF;AAAA,gCACA,GAAA;AAAA,kBAAC,OAAA;AAAA,kBAAA;AAAA,oBACC,SACE,aAAA,GACI,CAAA,CAAE,oCAAoC,CAAA,GACtC,EAAE,6BAA6B,CAAA;AAAA,oBAErC,QAAA,EAAS,OAAA;AAAA,oBAET,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAW,SAAA,EAAU,MAAA,EACpB,QAAA,kBAAA,GAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,OAAA,EAAQ,OAAA;AAAA,wBACR,WAAW,OAAA,CAAQ,aAAA;AAAA,wBACnB,OAAA,EACE,gBAAgB,MAAA,GAAY,qBAAA;AAAA,wBAE9B,YAAA,EAAY,EAAE,6BAA6B,CAAA;AAAA,wBAC3C,UAAA,EAAY,aAAA;AAAA,wBAEZ,QAAA,kBAAA,GAAA,CAAC,mBAAA,EAAA,EAAoB,QAAA,EAAU,aAAA,EAAe;AAAA;AAAA,qBAChD,EACF;AAAA;AAAA;AACF,eAAA,EACF,CAAA;AAAA,8BAGF,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,aAAA,EACtB,QAAA,EAAA;AAAA,gCAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,MAAA,EACtB,QAAA,kBAAA,GAAA;AAAA,kBAAC,MAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAQ,MAAA;AAAA,oBACR,WAAW,OAAA,CAAQ,WAAA;AAAA,oBACnB,OAAA,EAAS,OAAA;AAAA,oBACT,IAAA,sBAAO,SAAA,EAAA,EAAU,CAAA;AAAA,oBACjB,YAAA,EAAa,KAAA;AAAA,oBAEZ,YAAE,qBAAqB;AAAA;AAAA,iBAC1B,EACF,CAAA;AAAA,oCAEC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,WAAA,EAAc,6BAAkB,EAAE,CAAA;AAAA,gBAEzD,CAAC,gBAAgB,QAAA,CAAS,MAAA,KAAW,qBACpC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,OAAA,CAAQ,kBAAA,EACtB,QAAA,kBAAA,GAAA,CAAC,SAAM,QAAA,EAAQ,IAAA,EAAC,OAAA,EAAQ,MAAA,EAAO,KAAA,EAAO,CAAA,CAAE,gBAAgB,CAAA,EACrD,QAAA,EAAA,CAAA,CAAE,8BAA8B,CAAA,EACnC,CAAA,EACF,CAAA;AAAA,gCAGF,IAAA,CAAC,aAAA,EAAA,EAAc,SAAA,EAAW,OAAA,CAAQ,MAAA,EAC/B,QAAA,EAAA;AAAA,kBAAA,SAAA,CAAU,WAAW,CAAA,mBACpB,GAAA;AAAA,oBAAC,OAAA;AAAA,oBAAA;AAAA,sBACC,OAAA,EAAS,EAAE,qCAAqC,CAAA;AAAA,sBAChD,QAAA,EAAS,KAAA;AAAA,sBAET,8BAAC,KAAA,EAAA,EACC,QAAA,kBAAA,GAAA;AAAA,wBAAC,UAAA;AAAA,wBAAA;AAAA,0BACC,eAAA,EAAiB,KAAA;AAAA,0BACjB,mBAAA,EAAqB,KAAA;AAAA,0BACrB,aAAA,EAAe,KAAA;AAAA,0BACf,oBAAA,EAAoB,IAAA;AAAA,0BACpB,UAAA,EAAU,IAAA;AAAA,0BACV,aAAA,EAAe,WAAA;AAAA,0BACf,WAAA,EAAa,EAAE,iCAAiC;AAAA;AAAA,uBAClD,EACF;AAAA;AAAA,mBACF,mBAEA,GAAA;AAAA,oBAAC,UAAA;AAAA,oBAAA;AAAA,sBACC,eAAA,EAAiB,KAAA;AAAA,sBACjB,mBAAA,EAAmB,IAAA;AAAA,sBACnB,aAAA,EAAe,KAAA;AAAA,sBACf,oBAAA;AAAA,sBACA,aAAA,EAAe,WAAA;AAAA,sBACf,WAAA,EAAa,EAAE,iCAAiC;AAAA;AAAA,mBAClD;AAAA,kCAEF,GAAA,CAAC,eAAA,EAAA,EAAgB,KAAA,EAAO,CAAA,CAAE,uBAAuB,CAAA,EAAG;AAAA,iBAAA,EACtD;AAAA,eAAA,EACF;AAAA,aAAA,EACF,CAAA,EACF;AAAA;AAAA;AACF;AAAA,KACF;AAAA,oBAEA,GAAA;AAAA,MAAC,gBAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,iBAAA;AAAA,QACR,OAAA,EAAS,sBAAA;AAAA,QACT,SAAA;AAAA,QACA,qBAAA,EAAuB,SAAA,CAAU,GAAA,CAAI,CAAA,CAAA,KAAK,EAAE,KAAK,CAAA;AAAA,QACjD,gBAAA,EAAkB,oBAAA;AAAA,QAClB,eAAA,EAAiB,mBAAA;AAAA,QACjB,cAAA,EAAgB,kBAAA;AAAA,QAChB,iBAAA,EAAmB,qBAAA;AAAA,QACnB,UAAA,EAAY,iBAAA;AAAA,QACZ,YAAA,EAAc;AAAA;AAAA,KAChB;AAAA,oBAEA,GAAA;AAAA,MAAC,qBAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,oBAAA;AAAA,QACR,OAAA,EAAS,qBAAA;AAAA,QACT,SAAA,EAAW,sBAAA;AAAA,QACX,SAAA,EAAW,gBAAA,CAAiB,GAAA,CAAI,CAAA,CAAA,KAAK,EAAE,IAAI;AAAA;AAAA;AAC7C,GAAA,EACF,CAAA;AAEJ;;;;"}
@@ -30,6 +30,7 @@ const lightspeedTranslationDe = createTranslationMessages({
30
30
  "notebooks.updated.yesterday": "Vor 1 Tag aktualisiert",
31
31
  "notebooks.updated.days": "Vor {{days}} Tagen aktualisiert",
32
32
  "notebooks.updated.on": "Aktualisiert am",
33
+ "notebooks.card.openAria": "Notizbuch {{name}} \xF6ffnen",
33
34
  // Notebook view
34
35
  "notebook.view.title": "Unbenanntes Notizbuch",
35
36
  "notebook.view.close": "Notizbuch schlie\xDFen",