arxatec-ui 0.1.68 → 0.1.71
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 +76 -1
- package/dist/components/file_view/components/file_simple_preview_render/index.js +28 -34
- package/dist/components/file_view/components/file_simple_preview_render/index.js.map +1 -1
- package/dist/components/file_view/components/file_simple_preview_sheet/index.js +1 -1
- package/dist/components/file_view/components/file_simple_preview_sheet/index.js.map +1 -1
- package/dist/components/file_view/components/file_url_preview_render/index.js +20 -22
- package/dist/components/file_view/components/file_url_preview_render/index.js.map +1 -1
- package/dist/components/file_view/components/file_url_preview_sheet/index.js +1 -1
- package/dist/components/file_view/components/file_url_preview_sheet/index.js.map +1 -1
- package/dist/components/file_view/components/file_view_sheet/components/file_view_sheet_panel_content/index.d.ts +1 -1
- package/dist/components/file_view/components/file_view_sheet/components/file_view_sheet_panel_content/index.js +51 -45
- package/dist/components/file_view/components/file_view_sheet/components/file_view_sheet_panel_content/index.js.map +1 -1
- package/dist/components/file_view/components/file_view_sheet/index.d.ts +1 -1
- package/dist/components/file_view/components/file_view_sheet/index.js +5 -2
- package/dist/components/file_view/components/file_view_sheet/index.js.map +1 -1
- package/dist/components/file_view/components/file_view_sheet/types/index.d.ts +2 -0
- package/dist/components/file_view/components/image_viewer/index.d.ts +1 -1
- package/dist/components/file_view/components/image_viewer/index.js +5 -4
- package/dist/components/file_view/components/image_viewer/index.js.map +1 -1
- package/dist/components/file_view/components/image_viewer/utils/heic/index.js +6 -7
- package/dist/components/file_view/components/image_viewer/utils/heic/index.js.map +1 -1
- package/dist/components/file_view/components/lazy_viewer/components/pending/index.d.ts +5 -0
- package/dist/components/file_view/components/lazy_viewer/components/pending/index.js +7 -0
- package/dist/components/file_view/components/lazy_viewer/components/pending/index.js.map +1 -0
- package/dist/components/file_view/components/lazy_viewer/index.d.ts +4 -0
- package/dist/components/file_view/components/lazy_viewer/index.js +24 -0
- package/dist/components/file_view/components/lazy_viewer/index.js.map +1 -0
- package/dist/components/file_view/components/pdf_viewer/components/content/index.js +1 -0
- package/dist/components/file_view/components/pdf_viewer/components/content/index.js.map +1 -1
- package/dist/components/file_view/components/pdf_viewer/index.d.ts +1 -1
- package/dist/components/file_view/components/pdf_viewer/index.js +3 -2
- package/dist/components/file_view/components/pdf_viewer/index.js.map +1 -1
- package/dist/components/file_view/components/template_viewer/components/pdf_template_viewer/components/pdf_template_viewer_content/index.js +1 -0
- package/dist/components/file_view/components/template_viewer/components/pdf_template_viewer/components/pdf_template_viewer_content/index.js.map +1 -1
- package/dist/components/file_view/index.d.ts +2 -1
- package/dist/components/file_view/utilities/pdf_worker_configuration.d.ts +3 -0
- package/dist/components/file_view/utilities/pdf_worker_configuration.js +15 -0
- package/dist/components/file_view/utilities/pdf_worker_configuration.js.map +1 -0
- package/dist/components/file_view/utilities/setup_pdf_worker/index.js +12 -0
- package/dist/components/file_view/utilities/setup_pdf_worker/index.js.map +1 -0
- package/dist/components/icons/components/apple_isotype/index.d.ts +2 -0
- package/dist/components/icons/components/apple_isotype/index.js +14 -0
- package/dist/components/icons/components/apple_isotype/index.js.map +1 -0
- package/dist/components/icons/components/index.d.ts +1 -0
- package/dist/components/logo/constants/index.d.ts +2 -0
- package/dist/components/logo/constants/index.js +29 -0
- package/dist/components/logo/constants/index.js.map +1 -0
- package/dist/components/logo/index.d.ts +5 -3
- package/dist/components/logo/index.js +21 -12
- package/dist/components/logo/index.js.map +1 -1
- package/dist/components/logo/types/index.d.ts +10 -0
- package/dist/exports/file-view-audio.d.ts +1 -0
- package/dist/exports/file-view-code.d.ts +2 -0
- package/dist/exports/file-view-core.d.ts +22 -0
- package/dist/exports/file-view-docx.d.ts +1 -0
- package/dist/exports/file-view-image.d.ts +3 -0
- package/dist/exports/file-view-lazy.d.ts +1 -0
- package/dist/exports/file-view-office.d.ts +1 -0
- package/dist/exports/file-view-pdf.d.ts +2 -0
- package/dist/exports/file-view-summary.d.ts +2 -0
- package/dist/exports/file-view-template.d.ts +3 -0
- package/dist/exports/file-view-transcription.d.ts +2 -0
- package/dist/exports/file-view-video.d.ts +2 -0
- package/dist/exports/file-view-xlsx.d.ts +1 -0
- package/dist/file-view-audio.js +2 -0
- package/dist/file-view-code.js +3 -0
- package/dist/file-view-core.js +22 -0
- package/dist/file-view-docx.js +2 -0
- package/dist/file-view-image.js +6 -0
- package/dist/file-view-lazy.js +2 -0
- package/dist/file-view-office.js +2 -0
- package/dist/file-view-pdf.js +5 -0
- package/dist/file-view-summary.js +3 -0
- package/dist/file-view-template.js +4 -0
- package/dist/file-view-transcription.js +3 -0
- package/dist/file-view-video.js +3 -0
- package/dist/file-view-xlsx.js +2 -0
- package/dist/file-view.js +44 -43
- package/dist/fonts/cormorant-garamond-italic-cyrillic-ext.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-italic-cyrillic.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-italic-latin-ext.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-italic-latin.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-italic-vietnamese.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-normal-cyrillic-ext.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-normal-cyrillic.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-normal-latin-ext.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-normal-latin.woff2 +0 -0
- package/dist/fonts/cormorant-garamond-normal-vietnamese.woff2 +0 -0
- package/dist/fonts/cormorantgaramond-OFL.txt +93 -0
- package/dist/fonts/jetbrains-mono-italic-cyrillic-ext.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-italic-cyrillic.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-italic-greek.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-italic-latin-ext.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-italic-latin.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-italic-vietnamese.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-normal-cyrillic-ext.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-normal-cyrillic.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-normal-greek.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-normal-latin-ext.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-normal-latin.woff2 +0 -0
- package/dist/fonts/jetbrains-mono-normal-vietnamese.woff2 +0 -0
- package/dist/fonts/jetbrainsmono-OFL.txt +93 -0
- package/dist/index.js +41 -40
- package/dist/styles.css +242 -2
- package/package.json +78 -8
package/README.md
CHANGED
|
@@ -93,7 +93,29 @@ Patterns follow **shadcn**-style APIs (compound components with named exports).
|
|
|
93
93
|
- **Surfaces & navigation:** `Card`, `Dialog`, `Sheet`, `Drawer`, `Popover`, `Tooltip`, `DropdownMenu`, `ContextMenu`, `Tabs`, `Breadcrumb`, `Pagination`, `PaginationController`, `Sidebar`, `Command`, `Collapsible`, and more.
|
|
94
94
|
- **Data & feedback:** `Table`, `Badge`, `Skeleton`, `Progress`, `StatusMessage`, `AsyncBoundary`, `AsyncCommandList`, `Chart`, `Carousel`, and more.
|
|
95
95
|
- **Maps:** `MapView`, `MapPicker`.
|
|
96
|
-
- **Extras:** `Toaster` (Sonner), `IconPicker`, `EmojiPicker`, brand icons, animated icons, etc.
|
|
96
|
+
- **Extras:** `Toaster` (Sonner), `Logo`, `IconPicker`, `EmojiPicker`, brand icons, animated icons, etc.
|
|
97
|
+
|
|
98
|
+
`Logo` accepts `variant="arxatec" | "academy" | "management"` starting with
|
|
99
|
+
`0.1.71`. Omitting `variant` renders the original Arxatec logo. All three inline
|
|
100
|
+
SVGs preserve their proportions and inherit their color through `currentColor`:
|
|
101
|
+
|
|
102
|
+
```tsx
|
|
103
|
+
import { Logo } from "arxatec-ui";
|
|
104
|
+
|
|
105
|
+
<Logo className="h-8 w-auto text-foreground" />;
|
|
106
|
+
<Logo variant="academy" className="h-8 w-auto text-foreground" />;
|
|
107
|
+
<Logo variant="management" className="h-8 w-auto text-foreground" />;
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
`AppleIsotype` is an inline SVG with a transparent background. It inherits its
|
|
111
|
+
color through `currentColor` and accepts SVG props, including `className` and
|
|
112
|
+
ARIA attributes:
|
|
113
|
+
|
|
114
|
+
```tsx
|
|
115
|
+
import { AppleIsotype } from "arxatec-ui";
|
|
116
|
+
|
|
117
|
+
<AppleIsotype className="size-4 text-foreground" aria-hidden="true" />;
|
|
118
|
+
```
|
|
97
119
|
|
|
98
120
|
The full list matches the `export *` entries in [`src/index.ts`](./src/index.ts).
|
|
99
121
|
|
|
@@ -136,3 +158,56 @@ Publishing to npm requires **2FA**; use `npm publish --otp=...` when prompted.
|
|
|
136
158
|
## License
|
|
137
159
|
|
|
138
160
|
MIT. See [LICENSE](./LICENSE).
|
|
161
|
+
|
|
162
|
+
## File-view engines on demand (0.1.69)
|
|
163
|
+
|
|
164
|
+
Existing `arxatec-ui/file-view` exports remain compatible. Applications that need
|
|
165
|
+
bounded startup downloads should use the lightweight shell and lazy engines:
|
|
166
|
+
|
|
167
|
+
```tsx
|
|
168
|
+
import {
|
|
169
|
+
FileViewSheet,
|
|
170
|
+
configureFileViewPdfWorker,
|
|
171
|
+
} from "arxatec-ui/file-view/core";
|
|
172
|
+
import { lazyFileViewer } from "arxatec-ui/file-view/lazy";
|
|
173
|
+
import type { FilePdfViewerProps } from "arxatec-ui/file-view/pdf";
|
|
174
|
+
|
|
175
|
+
configureFileViewPdfWorker(localHashedWorkerUrl);
|
|
176
|
+
const PdfViewer = lazyFileViewer<FilePdfViewerProps>(() =>
|
|
177
|
+
import("arxatec-ui/file-view/pdf").then(({ FilePdfViewer }) => ({
|
|
178
|
+
default: FilePdfViewer,
|
|
179
|
+
})),
|
|
180
|
+
);
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
Engine entries under `/file-view/` are `pdf`, `image`, `office`, `code`, `template`,
|
|
184
|
+
`docx`, `xlsx`, `audio`, `video`, `summary` and `transcription`. The core does not
|
|
185
|
+
import PDF or another engine. HEIC conversion loads `heic2any` only for HEIC.
|
|
186
|
+
The wrapper loads without adding loading, error or retry controls. Loading
|
|
187
|
+
callbacks reach the existing parent sheet; a failed load ends its pending state.
|
|
188
|
+
Closing and reopening the sheet allows another load attempt.
|
|
189
|
+
|
|
190
|
+
`FileViewSheet` accepts `lazyPanels?: boolean`, default `false`. Set it to `true`
|
|
191
|
+
to mount only the initial panel and mount each other panel on its first visit.
|
|
192
|
+
Visited panels remain mounted, preserving edits, annotations and zoom, until
|
|
193
|
+
close or `fileKey` changes. `onActiveTabChange` reports the active panel. Render
|
|
194
|
+
callbacks receive `isActive`; query consumers should use it to pause summary and
|
|
195
|
+
transcription reads. Hidden-panel loading must not replace the active panel.
|
|
196
|
+
|
|
197
|
+
Configure a local hashed PDF worker before opening PDF. Configuration itself is
|
|
198
|
+
lightweight; deferred setup respects it and later configuration updates it. Match
|
|
199
|
+
the worker version exactly to `pdfjs-dist` resolved by this package's `react-pdf`.
|
|
200
|
+
The worker URL can use web/PWA origin or Electron `app://arxatec`. Build consumers
|
|
201
|
+
with the package's worker setup marked as a side effect. PDF and image viewers
|
|
202
|
+
forward `onLoadingChange` until their content is ready.
|
|
203
|
+
|
|
204
|
+
Import `arxatec-ui/styles.css` once. Font faces retain ArxatecSans,
|
|
205
|
+
Cormorant Garamond (300–700, normal/italic) and JetBrains Mono (100–800,
|
|
206
|
+
normal/italic), with local licensed assets and `font-display: swap`. They download
|
|
207
|
+
only when matching content uses them; omit fonts from PWA precache and cache
|
|
208
|
+
requested faces at runtime. Consumers share `react-hook-form`, `@tiptap/core` and
|
|
209
|
+
`@tiptap/react` as peers alongside React and React Query.
|
|
210
|
+
|
|
211
|
+
Publication requires owner PR merge and clean-main publish. The platform's
|
|
212
|
+
minimum release age is seven days; validate a tarball in isolation before that
|
|
213
|
+
consumer update.
|
|
@@ -1,59 +1,53 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { effectiveMimeFromFile as s } from "../../utilities/effective_mime_from_file.js";
|
|
9
|
-
import { FileSourceFileViewer as c } from "../file_source_file_viewer/index.js";
|
|
10
|
-
import { FileXlsxPreviewViewer as l } from "../xlsx_preview_viewer/index.js";
|
|
11
|
-
import { downloadFromUrl as u } from "../../utilities/download_from_url.js";
|
|
12
|
-
import { CODE_FILE_EXTENSIONS as d, CODE_MIME_PREFIXES as f, OFFICE_MIME_TYPES as p } from "./constants/index.js";
|
|
13
|
-
import { jsx as m } from "react/jsx-runtime";
|
|
1
|
+
import { FileUnknownViewer as e } from "../unknown_viewer/index.js";
|
|
2
|
+
import { lazyFileViewer as t } from "../lazy_viewer/index.js";
|
|
3
|
+
import { FileBlobOfficeUnavailable as n } from "../blob_office_unavailable/index.js";
|
|
4
|
+
import { downloadFromUrl as r } from "../../utilities/download_from_url.js";
|
|
5
|
+
import { effectiveMimeFromFile as i } from "../../utilities/effective_mime_from_file.js";
|
|
6
|
+
import { CODE_FILE_EXTENSIONS as a, CODE_MIME_PREFIXES as o, OFFICE_MIME_TYPES as s } from "./constants/index.js";
|
|
7
|
+
import { jsx as c } from "react/jsx-runtime";
|
|
14
8
|
//#region src/components/file_view/components/file_simple_preview_render/index.tsx
|
|
15
|
-
var h = ({ file:
|
|
16
|
-
let v =
|
|
17
|
-
return v === "application/pdf" ? /* @__PURE__ */
|
|
9
|
+
var l = t(() => import("../audio_player/index.js").then((e) => ({ default: e.FileAudioPlayer }))), u = t(() => import("../docx_preview_viewer/index.js").then((e) => ({ default: e.FileDocxPreviewViewer }))), d = t(() => import("../image_viewer/index.js").then((e) => ({ default: e.FileImageViewer }))), f = t(() => import("../pdf_viewer/index.js").then((e) => ({ default: e.FilePdfViewer }))), p = t(() => import("../file_source_file_viewer/index.js").then((e) => ({ default: e.FileSourceFileViewer }))), m = t(() => import("../video_player/index.js").then((e) => ({ default: e.FileVideoPlayer }))), h = t(() => import("../xlsx_preview_viewer/index.js").then((e) => ({ default: e.FileXlsxPreviewViewer }))), g = ({ file: t, url: g, onLoadingChange: _ }) => {
|
|
10
|
+
let v = i(t), y = () => r(g, t.name);
|
|
11
|
+
return v === "application/pdf" ? /* @__PURE__ */ c(f, {
|
|
18
12
|
url: g,
|
|
19
|
-
fileName:
|
|
13
|
+
fileName: t.name,
|
|
20
14
|
onDownload: y,
|
|
21
15
|
onLoadingChange: _
|
|
22
|
-
}) : v.startsWith("image/") ? /* @__PURE__ */
|
|
16
|
+
}) : v.startsWith("image/") ? /* @__PURE__ */ c(d, {
|
|
23
17
|
url: g,
|
|
24
18
|
mimeType: v,
|
|
25
19
|
fileId: g,
|
|
26
|
-
fileName:
|
|
20
|
+
fileName: t.name,
|
|
27
21
|
onDownload: y,
|
|
28
22
|
onLoadingChange: _
|
|
29
|
-
}) : v.startsWith("video/") ? /* @__PURE__ */ m
|
|
23
|
+
}) : v.startsWith("video/") ? /* @__PURE__ */ c(m, {
|
|
30
24
|
url: g,
|
|
31
|
-
fileName:
|
|
25
|
+
fileName: t.name,
|
|
32
26
|
onDownload: y,
|
|
33
27
|
onLoadingChange: _
|
|
34
|
-
}) : v.startsWith("audio/") ? /* @__PURE__ */
|
|
28
|
+
}) : v.startsWith("audio/") ? /* @__PURE__ */ c(l, {
|
|
35
29
|
url: g,
|
|
36
|
-
fileName:
|
|
30
|
+
fileName: t.name,
|
|
37
31
|
onDownload: y,
|
|
38
32
|
onLoadingChange: _
|
|
39
|
-
}) :
|
|
40
|
-
file:
|
|
33
|
+
}) : o.some((e) => v.startsWith(e)) || a.test(t.name) ? /* @__PURE__ */ c(p, {
|
|
34
|
+
file: t,
|
|
41
35
|
onLoadingChange: _
|
|
42
|
-
}) : v === "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ? /* @__PURE__ */
|
|
43
|
-
file:
|
|
36
|
+
}) : v === "application/vnd.openxmlformats-officedocument.wordprocessingml.document" ? /* @__PURE__ */ c(u, {
|
|
37
|
+
file: t,
|
|
44
38
|
onLoadingChange: _
|
|
45
|
-
}) : v === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" || v === "application/vnd.ms-excel" ? /* @__PURE__ */
|
|
46
|
-
file:
|
|
39
|
+
}) : v === "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" || v === "application/vnd.ms-excel" ? /* @__PURE__ */ c(h, {
|
|
40
|
+
file: t,
|
|
47
41
|
onLoadingChange: _
|
|
48
|
-
}) :
|
|
42
|
+
}) : s.includes(v) ? /* @__PURE__ */ c(n, {
|
|
49
43
|
url: g,
|
|
50
|
-
fileName:
|
|
51
|
-
}) : /* @__PURE__ */
|
|
52
|
-
fileName:
|
|
44
|
+
fileName: t.name
|
|
45
|
+
}) : /* @__PURE__ */ c(e, {
|
|
46
|
+
fileName: t.name,
|
|
53
47
|
onDownload: y
|
|
54
48
|
});
|
|
55
49
|
};
|
|
56
50
|
//#endregion
|
|
57
|
-
export {
|
|
51
|
+
export { g as FileSimplePreviewRender };
|
|
58
52
|
|
|
59
53
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_simple_preview_render/index.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_simple_preview_render/index.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport { lazyFileViewer } from \"../lazy_viewer\";\nimport { FileBlobOfficeUnavailable } from \"../blob_office_unavailable\";\nimport { FileUnknownViewer } from \"../unknown_viewer\";\nimport { downloadFromUrl } from \"../../utilities/download_from_url\";\nimport { effectiveMimeFromFile } from \"../../utilities/effective_mime_from_file\";\nimport {\n CODE_FILE_EXTENSIONS,\n CODE_MIME_PREFIXES,\n DOCX_MIME,\n OFFICE_MIME_TYPES,\n XLSX_MIME,\n XLS_MIME,\n} from \"./constants\";\nimport type { FileViewLoadingChangeHandler } from \"../../types\";\n\nconst FileAudioPlayer = lazyFileViewer<\n ComponentProps<typeof import(\"../audio_player\").FileAudioPlayer>\n>(() =>\n import(\"../audio_player\").then((module) => ({\n default: module.FileAudioPlayer,\n })),\n);\nconst FileDocxPreviewViewer = lazyFileViewer<\n ComponentProps<typeof import(\"../docx_preview_viewer\").FileDocxPreviewViewer>\n>(() =>\n import(\"../docx_preview_viewer\").then((module) => ({\n default: module.FileDocxPreviewViewer,\n })),\n);\nconst FileImageViewer = lazyFileViewer<\n ComponentProps<typeof import(\"../image_viewer\").FileImageViewer>\n>(() =>\n import(\"../image_viewer\").then((module) => ({\n default: module.FileImageViewer,\n })),\n);\nconst FilePdfViewer = lazyFileViewer<\n ComponentProps<typeof import(\"../pdf_viewer\").FilePdfViewer>\n>(() =>\n import(\"../pdf_viewer\").then((module) => ({ default: module.FilePdfViewer })),\n);\nconst FileSourceFileViewer = lazyFileViewer<\n ComponentProps<\n typeof import(\"../file_source_file_viewer\").FileSourceFileViewer\n >\n>(() =>\n import(\"../file_source_file_viewer\").then((module) => ({\n default: module.FileSourceFileViewer,\n })),\n);\nconst FileVideoPlayer = lazyFileViewer<\n ComponentProps<typeof import(\"../video_player\").FileVideoPlayer>\n>(() =>\n import(\"../video_player\").then((module) => ({\n default: module.FileVideoPlayer,\n })),\n);\nconst FileXlsxPreviewViewer = lazyFileViewer<\n ComponentProps<typeof import(\"../xlsx_preview_viewer\").FileXlsxPreviewViewer>\n>(() =>\n import(\"../xlsx_preview_viewer\").then((module) => ({\n default: module.FileXlsxPreviewViewer,\n })),\n);\n\nexport interface FileSimplePreviewRenderProps {\n file: File;\n url: string;\n onLoadingChange?: FileViewLoadingChangeHandler;\n}\n\nexport const FileSimplePreviewRender = ({\n file,\n url,\n onLoadingChange,\n}: FileSimplePreviewRenderProps) => {\n const mimeType = effectiveMimeFromFile(file);\n const download = () => downloadFromUrl(url, file.name);\n\n if (mimeType === \"application/pdf\") {\n return (\n <FilePdfViewer\n url={url}\n fileName={file.name}\n onDownload={download}\n onLoadingChange={onLoadingChange}\n />\n );\n }\n\n if (mimeType.startsWith(\"image/\")) {\n return (\n <FileImageViewer\n url={url}\n mimeType={mimeType}\n fileId={url}\n fileName={file.name}\n onDownload={download}\n onLoadingChange={onLoadingChange}\n />\n );\n }\n\n if (mimeType.startsWith(\"video/\")) {\n return (\n <FileVideoPlayer\n url={url}\n fileName={file.name}\n onDownload={download}\n onLoadingChange={onLoadingChange}\n />\n );\n }\n\n if (mimeType.startsWith(\"audio/\")) {\n return (\n <FileAudioPlayer\n url={url}\n fileName={file.name}\n onDownload={download}\n onLoadingChange={onLoadingChange}\n />\n );\n }\n\n const isCode =\n CODE_MIME_PREFIXES.some((prefix) => mimeType.startsWith(prefix)) ||\n CODE_FILE_EXTENSIONS.test(file.name);\n\n if (isCode) {\n return (\n <FileSourceFileViewer file={file} onLoadingChange={onLoadingChange} />\n );\n }\n\n if (mimeType === DOCX_MIME) {\n return (\n <FileDocxPreviewViewer file={file} onLoadingChange={onLoadingChange} />\n );\n }\n\n if (mimeType === XLSX_MIME || mimeType === XLS_MIME) {\n return (\n <FileXlsxPreviewViewer file={file} onLoadingChange={onLoadingChange} />\n );\n }\n\n if ((OFFICE_MIME_TYPES as readonly string[]).includes(mimeType)) {\n return <FileBlobOfficeUnavailable url={url} fileName={file.name} />;\n }\n\n return <FileUnknownViewer fileName={file.name} onDownload={download} />;\n};\n"],"mappings":";;;;;;;;AAgBA,IAAM,IAAkB,QAGtB,OAAO,4BAAmB,MAAM,OAAY,EAC1C,SAAS,EAAO,iBACjB,EAAE,CACJ,EACK,IAAwB,QAG5B,OAAO,mCAA0B,MAAM,OAAY,EACjD,SAAS,EAAO,uBACjB,EAAE,CACJ,EACK,IAAkB,QAGtB,OAAO,4BAAmB,MAAM,OAAY,EAC1C,SAAS,EAAO,iBACjB,EAAE,CACJ,EACK,IAAgB,QAGpB,OAAO,0BAAiB,MAAM,OAAY,EAAE,SAAS,EAAO,eAAe,EAAE,CAC9E,EACK,IAAuB,QAK3B,OAAO,uCAA8B,MAAM,OAAY,EACrD,SAAS,EAAO,sBACjB,EAAE,CACJ,EACK,IAAkB,QAGtB,OAAO,4BAAmB,MAAM,OAAY,EAC1C,SAAS,EAAO,iBACjB,EAAE,CACJ,EACK,IAAwB,QAG5B,OAAO,mCAA0B,MAAM,OAAY,EACjD,SAAS,EAAO,uBACjB,EAAE,CACJ,EAQY,KAA2B,EACtC,SACA,QACA,yBACkC;CAClC,IAAM,IAAW,EAAsB,EAAK,EACtC,UAAiB,EAAgB,GAAK,EAAK,KAAK;AA0EtD,QAxEI,MAAa,oBAEb,kBAAC,GAAD;EACO;EACL,UAAU,EAAK;EACf,YAAY;EACK;EACjB,CAAA,GAIF,EAAS,WAAW,SAAS,GAE7B,kBAAC,GAAD;EACO;EACK;EACV,QAAQ;EACR,UAAU,EAAK;EACf,YAAY;EACK;EACjB,CAAA,GAIF,EAAS,WAAW,SAAS,GAE7B,kBAAC,GAAD;EACO;EACL,UAAU,EAAK;EACf,YAAY;EACK;EACjB,CAAA,GAIF,EAAS,WAAW,SAAS,GAE7B,kBAAC,GAAD;EACO;EACL,UAAU,EAAK;EACf,YAAY;EACK;EACjB,CAAA,GAKJ,EAAmB,MAAM,MAAW,EAAS,WAAW,EAAO,CAAC,IAChE,EAAqB,KAAK,EAAK,KAAK,GAIlC,kBAAC,GAAD;EAA4B;EAAuB;EAAmB,CAAA,GAItE,MAAA,4EAEA,kBAAC,GAAD;EAA6B;EAAuB;EAAmB,CAAA,GAIvE,MAAA,uEAA0B,MAAA,6BAE1B,kBAAC,GAAD;EAA6B;EAAuB;EAAmB,CAAA,GAItE,EAAwC,SAAS,EAAS,GACtD,kBAAC,GAAD;EAAgC;EAAK,UAAU,EAAK;EAAQ,CAAA,GAG9D,kBAAC,GAAD;EAAmB,UAAU,EAAK;EAAM,YAAY;EAAY,CAAA"}
|
|
@@ -4,7 +4,7 @@ import { useEffect as a, useMemo as o } from "react";
|
|
|
4
4
|
import { jsx as s, jsxs as c } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/file_view/components/file_simple_preview_sheet/index.tsx
|
|
6
6
|
var l = ({ open: l, onOpenChange: u, file: d, isLoading: f = !1, loadingOverlay: p, onLoadingChange: m }) => {
|
|
7
|
-
let h = o(() => d ? URL.createObjectURL(d)
|
|
7
|
+
let h = o(() => !l || !d ? null : URL.createObjectURL(d), [d, l]);
|
|
8
8
|
return a(() => () => {
|
|
9
9
|
h && URL.revokeObjectURL(h);
|
|
10
10
|
}, [h]), /* @__PURE__ */ s(e, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_simple_preview_sheet/index.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\";\nimport { FileSimplePreviewRender } from \"../file_simple_preview_render\";\nimport type { FileViewLoadingChangeHandler } from \"../../types\";\n\nexport interface FileSimplePreviewSheetProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n file: File | null;\n isLoading?: boolean;\n loadingOverlay?: React.ReactNode;\n onLoadingChange?: FileViewLoadingChangeHandler;\n}\n\nexport const FileSimplePreviewSheet = ({\n open,\n onOpenChange,\n file,\n isLoading = false,\n loadingOverlay,\n onLoadingChange,\n}: FileSimplePreviewSheetProps) => {\n const url = useMemo(() => {\n if (!file) return null;\n return URL.createObjectURL(file);\n }, [file]);\n\n useEffect(() => {\n return () => {\n if (url) URL.revokeObjectURL(url);\n };\n }, [url]);\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"sm:max-w-[95vw] w-full p-0 flex flex-col gap-0 overflow-hidden\">\n <SheetHeader className=\"px-6 flex flex-row items-center justify-between space-y-0 border-b bg-background relative z-10\">\n <SheetTitle className=\"line-clamp-1 flex-1 mr-4\">\n {file?.name || \"Vista previa del archivo\"}\n </SheetTitle>\n </SheetHeader>\n\n <div className=\"flex-1 relative min-h-0 bg-background\">\n {file && url && (\n <div className=\"absolute inset-0 overflow-hidden min-w-0\">\n <FileSimplePreviewRender\n file={file}\n url={url}\n onLoadingChange={onLoadingChange}\n />\n </div>\n )}\n {isLoading && loadingOverlay ? (\n <div className=\"absolute inset-0 z-50 bg-background\">\n {loadingOverlay}\n </div>\n ) : null}\n </div>\n </SheetContent>\n </Sheet>\n );\n};\n"],"mappings":";;;;;AAmBA,IAAa,KAA0B,EACrC,SACA,iBACA,SACA,eAAY,IACZ,mBACA,yBACiC;CACjC,IAAM,IAAM,
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_simple_preview_sheet/index.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport {\n Sheet,\n SheetContent,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\";\nimport { FileSimplePreviewRender } from \"../file_simple_preview_render\";\nimport type { FileViewLoadingChangeHandler } from \"../../types\";\n\nexport interface FileSimplePreviewSheetProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n file: File | null;\n isLoading?: boolean;\n loadingOverlay?: React.ReactNode;\n onLoadingChange?: FileViewLoadingChangeHandler;\n}\n\nexport const FileSimplePreviewSheet = ({\n open,\n onOpenChange,\n file,\n isLoading = false,\n loadingOverlay,\n onLoadingChange,\n}: FileSimplePreviewSheetProps) => {\n const url = useMemo(() => {\n if (!open || !file) return null;\n return URL.createObjectURL(file);\n }, [file, open]);\n\n useEffect(() => {\n return () => {\n if (url) URL.revokeObjectURL(url);\n };\n }, [url]);\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"sm:max-w-[95vw] w-full p-0 flex flex-col gap-0 overflow-hidden\">\n <SheetHeader className=\"px-6 flex flex-row items-center justify-between space-y-0 border-b bg-background relative z-10\">\n <SheetTitle className=\"line-clamp-1 flex-1 mr-4\">\n {file?.name || \"Vista previa del archivo\"}\n </SheetTitle>\n </SheetHeader>\n\n <div className=\"flex-1 relative min-h-0 bg-background\">\n {file && url && (\n <div className=\"absolute inset-0 overflow-hidden min-w-0\">\n <FileSimplePreviewRender\n file={file}\n url={url}\n onLoadingChange={onLoadingChange}\n />\n </div>\n )}\n {isLoading && loadingOverlay ? (\n <div className=\"absolute inset-0 z-50 bg-background\">\n {loadingOverlay}\n </div>\n ) : null}\n </div>\n </SheetContent>\n </Sheet>\n );\n};\n"],"mappings":";;;;;AAmBA,IAAa,KAA0B,EACrC,SACA,iBACA,SACA,eAAY,IACZ,mBACA,yBACiC;CACjC,IAAM,IAAM,QACN,CAAC,KAAQ,CAAC,IAAa,OACpB,IAAI,gBAAgB,EAAK,EAC/B,CAAC,GAAM,EAAK,CAAC;AAQhB,QANA,cACe;AACX,EAAI,KAAK,IAAI,gBAAgB,EAAI;IAElC,CAAC,EAAI,CAAC,EAGP,kBAAC,GAAD;EAAa;EAAoB;YAC/B,kBAAC,GAAD;GAAc,WAAU;aAAxB,CACE,kBAAC,GAAD;IAAa,WAAU;cACrB,kBAAC,GAAD;KAAY,WAAU;eACnB,GAAM,QAAQ;KACJ,CAAA;IACD,CAAA,EAEd,kBAAC,OAAD;IAAK,WAAU;cAAf,CACG,KAAQ,KACP,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,GAAD;MACQ;MACD;MACY;MACjB,CAAA;KACE,CAAA,EAEP,KAAa,IACZ,kBAAC,OAAD;KAAK,WAAU;eACZ;KACG,CAAA,GACJ,KACA;MACO;;EACT,CAAA"}
|
|
@@ -1,39 +1,37 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import { IMAGE_EXTENSIONS as s, OFFICE_EXTENSIONS as c } from "./constants/index.js";
|
|
9
|
-
import { jsx as l } from "react/jsx-runtime";
|
|
1
|
+
import { FileUnknownViewer as e } from "../unknown_viewer/index.js";
|
|
2
|
+
import { lazyFileViewer as t } from "../lazy_viewer/index.js";
|
|
3
|
+
import { downloadFromUrl as n } from "../../utilities/download_from_url.js";
|
|
4
|
+
import { inferMimeFromFileName as r } from "../../utilities/infer_mime_from_file_name.js";
|
|
5
|
+
import { getExtensionFromUrl as i } from "../../utilities/get_extension_from_url.js";
|
|
6
|
+
import { IMAGE_EXTENSIONS as a, OFFICE_EXTENSIONS as o } from "./constants/index.js";
|
|
7
|
+
import { jsx as s } from "react/jsx-runtime";
|
|
10
8
|
//#region src/components/file_view/components/file_url_preview_render/index.tsx
|
|
11
|
-
var u = ({ url:
|
|
12
|
-
let p =
|
|
13
|
-
return p === "pdf" ? /* @__PURE__ */
|
|
14
|
-
url:
|
|
9
|
+
var c = t(() => import("../image_viewer/index.js").then((e) => ({ default: e.FileImageViewer }))), l = t(() => import("../office_viewer/index.js").then((e) => ({ default: e.FileOfficeViewer }))), u = t(() => import("../pdf_viewer/index.js").then((e) => ({ default: e.FilePdfViewer }))), d = ({ url: t, fileName: d, onLoadingChange: f }) => {
|
|
10
|
+
let p = i(t), m = () => n(t, d);
|
|
11
|
+
return p === "pdf" ? /* @__PURE__ */ s(u, {
|
|
12
|
+
url: t,
|
|
15
13
|
fileName: d,
|
|
16
14
|
onDownload: m,
|
|
17
15
|
onLoadingChange: f
|
|
18
|
-
}) :
|
|
19
|
-
url:
|
|
20
|
-
mimeType:
|
|
16
|
+
}) : a.includes(p) ? /* @__PURE__ */ s(c, {
|
|
17
|
+
url: t,
|
|
18
|
+
mimeType: r(d) ?? void 0,
|
|
21
19
|
fileName: d,
|
|
22
|
-
fileId:
|
|
20
|
+
fileId: t,
|
|
23
21
|
onDownload: m,
|
|
24
22
|
onLoadingChange: f
|
|
25
|
-
}) :
|
|
26
|
-
url:
|
|
23
|
+
}) : o.includes(p) ? /* @__PURE__ */ s(l, {
|
|
24
|
+
url: t,
|
|
27
25
|
fileName: d,
|
|
28
|
-
mimeType:
|
|
26
|
+
mimeType: r(d) ?? void 0,
|
|
29
27
|
onDownload: m,
|
|
30
28
|
onLoadingChange: f
|
|
31
|
-
}) : /* @__PURE__ */
|
|
29
|
+
}) : /* @__PURE__ */ s(e, {
|
|
32
30
|
fileName: d,
|
|
33
31
|
onDownload: m
|
|
34
32
|
});
|
|
35
33
|
};
|
|
36
34
|
//#endregion
|
|
37
|
-
export {
|
|
35
|
+
export { d as FileUrlPreviewRender };
|
|
38
36
|
|
|
39
37
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_url_preview_render/index.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_url_preview_render/index.tsx"],"sourcesContent":["import type { ComponentProps } from \"react\";\nimport { lazyFileViewer } from \"../lazy_viewer\";\nimport { FileUnknownViewer } from \"../unknown_viewer\";\nimport { downloadFromUrl } from \"../../utilities/download_from_url\";\nimport { getExtensionFromUrl } from \"../../utilities/get_extension_from_url\";\nimport { inferMimeFromFileName } from \"../../utilities/infer_mime_from_file_name\";\nimport { IMAGE_EXTENSIONS, OFFICE_EXTENSIONS } from \"./constants\";\nimport type { FileViewLoadingChangeHandler } from \"../../types\";\n\nconst FileImageViewer = lazyFileViewer<\n ComponentProps<typeof import(\"../image_viewer\").FileImageViewer>\n>(() =>\n import(\"../image_viewer\").then((module) => ({\n default: module.FileImageViewer,\n })),\n);\nconst FileOfficeViewer = lazyFileViewer<\n ComponentProps<typeof import(\"../office_viewer\").FileOfficeViewer>\n>(() =>\n import(\"../office_viewer\").then((module) => ({\n default: module.FileOfficeViewer,\n })),\n);\nconst FilePdfViewer = lazyFileViewer<\n ComponentProps<typeof import(\"../pdf_viewer\").FilePdfViewer>\n>(() =>\n import(\"../pdf_viewer\").then((module) => ({ default: module.FilePdfViewer })),\n);\n\nexport interface FileUrlPreviewRenderProps {\n url: string;\n fileName: string;\n onLoadingChange?: FileViewLoadingChangeHandler;\n}\n\nexport const FileUrlPreviewRender = ({\n url,\n fileName,\n onLoadingChange,\n}: FileUrlPreviewRenderProps) => {\n const ext = getExtensionFromUrl(url);\n const download = () => downloadFromUrl(url, fileName);\n\n if (ext === \"pdf\") {\n return (\n <FilePdfViewer\n url={url}\n fileName={fileName}\n onDownload={download}\n onLoadingChange={onLoadingChange}\n />\n );\n }\n\n if (IMAGE_EXTENSIONS.includes(ext)) {\n const mimeType = inferMimeFromFileName(fileName) ?? undefined;\n return (\n <FileImageViewer\n url={url}\n mimeType={mimeType}\n fileName={fileName}\n fileId={url}\n onDownload={download}\n onLoadingChange={onLoadingChange}\n />\n );\n }\n\n if (OFFICE_EXTENSIONS.includes(ext)) {\n return (\n <FileOfficeViewer\n url={url}\n fileName={fileName}\n mimeType={inferMimeFromFileName(fileName) ?? undefined}\n onDownload={download}\n onLoadingChange={onLoadingChange}\n />\n );\n }\n\n return <FileUnknownViewer fileName={fileName} onDownload={download} />;\n};\n"],"mappings":";;;;;;;;AASA,IAAM,IAAkB,QAGtB,OAAO,4BAAmB,MAAM,OAAY,EAC1C,SAAS,EAAO,iBACjB,EAAE,CACJ,EACK,IAAmB,QAGvB,OAAO,6BAAoB,MAAM,OAAY,EAC3C,SAAS,EAAO,kBACjB,EAAE,CACJ,EACK,IAAgB,QAGpB,OAAO,0BAAiB,MAAM,OAAY,EAAE,SAAS,EAAO,eAAe,EAAE,CAC9E,EAQY,KAAwB,EACnC,QACA,aACA,yBAC+B;CAC/B,IAAM,IAAM,EAAoB,EAAI,EAC9B,UAAiB,EAAgB,GAAK,EAAS;AAuCrD,QArCI,MAAQ,QAER,kBAAC,GAAD;EACO;EACK;EACV,YAAY;EACK;EACjB,CAAA,GAIF,EAAiB,SAAS,EAAI,GAG9B,kBAAC,GAAD;EACO;EACK,UAJG,EAAsB,EAAS,IAAI,KAAA;EAKtC;EACV,QAAQ;EACR,YAAY;EACK;EACjB,CAAA,GAIF,EAAkB,SAAS,EAAI,GAE/B,kBAAC,GAAD;EACO;EACK;EACV,UAAU,EAAsB,EAAS,IAAI,KAAA;EAC7C,YAAY;EACK;EACjB,CAAA,GAIC,kBAAC,GAAD;EAA6B;EAAU,YAAY;EAAY,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_url_preview_sheet/index.tsx"],"sourcesContent":["import { FileX } from \"lucide-react\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\";\nimport { StatusMessage } from \"@/components/status_message\";\nimport { FileUrlPreviewRender } from \"../file_url_preview_render\";\nimport { getFileNameFromUrl } from \"../../utilities/get_extension_from_url\";\nimport type { FileViewLoadingChangeHandler } from \"../../types\";\n\nexport interface FileUrlPreviewSheetProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n url: string | null;\n fileName?: string;\n isPending?: boolean;\n isLoading?: boolean;\n isError?: boolean;\n loadingOverlay?: React.ReactNode;\n onLoadingChange?: FileViewLoadingChangeHandler;\n}\n\nexport const FileUrlPreviewSheet = ({\n open,\n onOpenChange,\n url,\n fileName,\n isPending = false,\n isLoading = false,\n isError = false,\n loadingOverlay,\n onLoadingChange,\n}: FileUrlPreviewSheetProps) => {\n const displayName =\n fileName ?? (url ? getFileNameFromUrl(url) : \"Vista previa\");\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"sm:max-w-[95vw] w-full p-0 flex flex-col gap-0 overflow-hidden\">\n <SheetHeader className=\"px-6 flex flex-row items-center justify-between space-y-0 border-b bg-background relative z-10\">\n <SheetTitle className=\"line-clamp-1 flex-1 mr-4\">\n {displayName}\n </SheetTitle>\n <SheetDescription className=\"sr-only\">\n Vista previa del archivo.\n </SheetDescription>\n </SheetHeader>\n\n <div className=\"flex-1 relative min-h-0 bg-background overflow-hidden\">\n {(isPending || isLoading) && loadingOverlay ? (\n <div className=\"absolute inset-0 z-50 bg-background\">\n {loadingOverlay}\n </div>\n ) : null}\n\n {isError && (\n <div className=\"p-4\">\n <StatusMessage\n title=\"Error al cargar el documento\"\n description=\"Vuelve a intentarlo en unos minutos. Si el error persiste, contacta con soporte.\"\n icon={FileX}\n />\n </div>\n )}\n\n {!isPending && !isError && url && (\n <FileUrlPreviewRender\n url={url}\n fileName={displayName}\n onLoadingChange={onLoadingChange}\n />\n )}\n </div>\n </SheetContent>\n </Sheet>\n );\n};\n"],"mappings":";;;;;;;AAyBA,IAAa,KAAuB,EAClC,SACA,iBACA,QACA,aACA,eAAY,IACZ,eAAY,IACZ,aAAU,IACV,mBACA,yBAC8B;CAC9B,IAAM,IACJ,MAAa,IAAM,EAAmB,EAAI,GAAG;AAE/C,QACE,kBAAC,GAAD;EAAa;EAAoB;YAC/B,kBAAC,GAAD;GAAc,WAAU;aAAxB,CACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,GAAD;KAAY,WAAU;eACnB;KACU,CAAA,EACb,kBAAC,GAAD;KAAkB,WAAU;eAAU;KAEnB,CAAA,CACP;OAEd,kBAAC,OAAD;IAAK,WAAU;cAAf;MACI,KAAa,MAAc,IAC3B,kBAAC,OAAD;MAAK,WAAU;gBACZ;MACG,CAAA,GACJ;KAEH,KACC,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OACE,OAAM;OACN,aAAY;OACZ,MAAM;OACN,CAAA;MACE,CAAA;KAGP,CAAC,KAAa,CAAC,KAAW,
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_url_preview_sheet/index.tsx"],"sourcesContent":["import { FileX } from \"lucide-react\";\nimport {\n Sheet,\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\";\nimport { StatusMessage } from \"@/components/status_message\";\nimport { FileUrlPreviewRender } from \"../file_url_preview_render\";\nimport { getFileNameFromUrl } from \"../../utilities/get_extension_from_url\";\nimport type { FileViewLoadingChangeHandler } from \"../../types\";\n\nexport interface FileUrlPreviewSheetProps {\n open: boolean;\n onOpenChange: (open: boolean) => void;\n url: string | null;\n fileName?: string;\n isPending?: boolean;\n isLoading?: boolean;\n isError?: boolean;\n loadingOverlay?: React.ReactNode;\n onLoadingChange?: FileViewLoadingChangeHandler;\n}\n\nexport const FileUrlPreviewSheet = ({\n open,\n onOpenChange,\n url,\n fileName,\n isPending = false,\n isLoading = false,\n isError = false,\n loadingOverlay,\n onLoadingChange,\n}: FileUrlPreviewSheetProps) => {\n const displayName =\n fileName ?? (url ? getFileNameFromUrl(url) : \"Vista previa\");\n\n return (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <SheetContent className=\"sm:max-w-[95vw] w-full p-0 flex flex-col gap-0 overflow-hidden\">\n <SheetHeader className=\"px-6 flex flex-row items-center justify-between space-y-0 border-b bg-background relative z-10\">\n <SheetTitle className=\"line-clamp-1 flex-1 mr-4\">\n {displayName}\n </SheetTitle>\n <SheetDescription className=\"sr-only\">\n Vista previa del archivo.\n </SheetDescription>\n </SheetHeader>\n\n <div className=\"flex-1 relative min-h-0 bg-background overflow-hidden\">\n {(isPending || isLoading) && loadingOverlay ? (\n <div className=\"absolute inset-0 z-50 bg-background\">\n {loadingOverlay}\n </div>\n ) : null}\n\n {isError && (\n <div className=\"p-4\">\n <StatusMessage\n title=\"Error al cargar el documento\"\n description=\"Vuelve a intentarlo en unos minutos. Si el error persiste, contacta con soporte.\"\n icon={FileX}\n />\n </div>\n )}\n\n {open && !isPending && !isError && url && (\n <FileUrlPreviewRender\n url={url}\n fileName={displayName}\n onLoadingChange={onLoadingChange}\n />\n )}\n </div>\n </SheetContent>\n </Sheet>\n );\n};\n"],"mappings":";;;;;;;AAyBA,IAAa,KAAuB,EAClC,SACA,iBACA,QACA,aACA,eAAY,IACZ,eAAY,IACZ,aAAU,IACV,mBACA,yBAC8B;CAC9B,IAAM,IACJ,MAAa,IAAM,EAAmB,EAAI,GAAG;AAE/C,QACE,kBAAC,GAAD;EAAa;EAAoB;YAC/B,kBAAC,GAAD;GAAc,WAAU;aAAxB,CACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,GAAD;KAAY,WAAU;eACnB;KACU,CAAA,EACb,kBAAC,GAAD;KAAkB,WAAU;eAAU;KAEnB,CAAA,CACP;OAEd,kBAAC,OAAD;IAAK,WAAU;cAAf;MACI,KAAa,MAAc,IAC3B,kBAAC,OAAD;MAAK,WAAU;gBACZ;MACG,CAAA,GACJ;KAEH,KACC,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OACE,OAAM;OACN,aAAY;OACZ,MAAM;OACN,CAAA;MACE,CAAA;KAGP,KAAQ,CAAC,KAAa,CAAC,KAAW,KACjC,kBAAC,GAAD;MACO;MACL,UAAU;MACO;MACjB,CAAA;KAEA;MACO;;EACT,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { FileViewSheetPanelProps } from '../../types';
|
|
2
|
-
declare const FileViewSheetPanelContent: ({ title, isPending, isLoading, loadingOverlay, isError, tabs, defaultTab, showTabs, renderOriginal, renderTranscription, renderSummary, renderTemplate, renderEdit, renderVersions, }: FileViewSheetPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
declare const FileViewSheetPanelContent: ({ lazyPanels, onActiveTabChange, title, isPending, isLoading, loadingOverlay, isError, tabs, defaultTab, showTabs, renderOriginal, renderTranscription, renderSummary, renderTemplate, renderEdit, renderVersions, }: FileViewSheetPanelProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export { FileViewSheetPanelContent };
|
|
@@ -4,83 +4,89 @@ import { SheetContent as n, SheetDescription as r, SheetHeader as i, SheetTitle
|
|
|
4
4
|
import { Tabs as o, TabsList as s, TabsTrigger as c } from "../../../../../tabs/index.js";
|
|
5
5
|
import { FILE_VIEW_SHEET_TAB as l } from "../../../../types/file_view_sheet.js";
|
|
6
6
|
import { renderPanelContent as u } from "../../utilities/index.js";
|
|
7
|
-
import {
|
|
8
|
-
import { Fragment as
|
|
9
|
-
import { FileX as
|
|
7
|
+
import { useEffect as d, useState as f } from "react";
|
|
8
|
+
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
9
|
+
import { FileX as g } from "lucide-react";
|
|
10
10
|
//#region src/components/file_view/components/file_view_sheet/components/file_view_sheet_panel_content/index.tsx
|
|
11
|
-
var
|
|
12
|
-
let [
|
|
13
|
-
|
|
11
|
+
var _ = ({ lazyPanels: _ = !1, onActiveTabChange: v, title: y, isPending: b = !1, isLoading: x = !1, loadingOverlay: S, isError: C = !1, tabs: w = [], defaultTab: T = l.ORIGINAL, showTabs: E = !1, renderOriginal: D, renderTranscription: O, renderSummary: k, renderTemplate: A, renderEdit: j, renderVersions: M }) => {
|
|
12
|
+
let [N, P] = f(T), [F, I] = f(() => new Set([T])), L = (e) => !_ || F.has(e);
|
|
13
|
+
d(() => {
|
|
14
|
+
v?.(N);
|
|
15
|
+
}, [N, v]);
|
|
16
|
+
let R = !b && !C, z = !E, B = E && w.length > 0, V = (t, n = "hidden", r = !1) => e("absolute inset-0 min-w-0 transition-opacity duration-150", n === "auto" ? "overflow-auto" : "overflow-hidden", B && !r && "pt-16", N === t ? "opacity-100 z-10" : "opacity-0 pointer-events-none z-0");
|
|
17
|
+
return /* @__PURE__ */ h(n, {
|
|
14
18
|
className: "sm:max-w-[95vw] w-full p-0 flex flex-col gap-0 overflow-hidden",
|
|
15
19
|
children: [
|
|
16
|
-
/* @__PURE__ */
|
|
20
|
+
/* @__PURE__ */ h(i, {
|
|
17
21
|
className: "px-6 flex flex-row items-center justify-between space-y-0 border-b bg-background relative z-10",
|
|
18
|
-
children: [/* @__PURE__ */
|
|
22
|
+
children: [/* @__PURE__ */ m(a, {
|
|
19
23
|
className: "line-clamp-1 flex-1 mr-4",
|
|
20
|
-
children:
|
|
21
|
-
}), /* @__PURE__ */
|
|
24
|
+
children: y
|
|
25
|
+
}), /* @__PURE__ */ m(r, {
|
|
22
26
|
className: "sr-only",
|
|
23
27
|
children: "Aquí podrás ver la vista previa del archivo seleccionado."
|
|
24
28
|
})]
|
|
25
29
|
}),
|
|
26
|
-
|
|
30
|
+
C && /* @__PURE__ */ m("div", {
|
|
27
31
|
className: "p-4",
|
|
28
|
-
children: /* @__PURE__ */
|
|
32
|
+
children: /* @__PURE__ */ m(t, {
|
|
29
33
|
title: "Sucedio un error inesperado",
|
|
30
34
|
description: "Vuelve a intentarlo dentro de unos minutos, si el error persiste, contacta con soporte.",
|
|
31
|
-
icon:
|
|
35
|
+
icon: g
|
|
32
36
|
})
|
|
33
37
|
}),
|
|
34
|
-
/* @__PURE__ */
|
|
38
|
+
/* @__PURE__ */ h("div", {
|
|
35
39
|
className: "flex-1 relative min-h-0 bg-background",
|
|
36
40
|
children: [
|
|
37
|
-
(
|
|
41
|
+
(b || x) && S ? /* @__PURE__ */ m("div", {
|
|
38
42
|
className: "absolute inset-0 z-50 bg-background",
|
|
39
|
-
children:
|
|
43
|
+
children: S
|
|
40
44
|
}) : null,
|
|
41
|
-
|
|
45
|
+
B && /* @__PURE__ */ m("div", {
|
|
42
46
|
className: "pointer-events-none absolute inset-x-0 top-5 z-30 flex justify-center px-4",
|
|
43
|
-
children: /* @__PURE__ */
|
|
44
|
-
value:
|
|
47
|
+
children: /* @__PURE__ */ m(o, {
|
|
48
|
+
value: N,
|
|
45
49
|
className: "pointer-events-auto max-w-full",
|
|
46
|
-
children: /* @__PURE__ */
|
|
50
|
+
children: /* @__PURE__ */ m(s, {
|
|
47
51
|
className: "border-border bg-card/95 h-auto max-w-full flex-wrap border shadow-lg backdrop-blur-sm",
|
|
48
|
-
children:
|
|
49
|
-
className: e("font-normal",
|
|
52
|
+
children: w.map((t) => /* @__PURE__ */ h(c, {
|
|
53
|
+
className: e("font-normal", N === t.id && "bg-background"),
|
|
50
54
|
value: t.id,
|
|
51
|
-
onClick: () =>
|
|
55
|
+
onClick: () => {
|
|
56
|
+
I((e) => new Set([...e, t.id])), P(t.id);
|
|
57
|
+
},
|
|
52
58
|
children: [t.icon, t.label]
|
|
53
59
|
}, t.id))
|
|
54
60
|
})
|
|
55
61
|
})
|
|
56
62
|
}),
|
|
57
|
-
|
|
63
|
+
R && (z ? /* @__PURE__ */ m("div", {
|
|
58
64
|
className: "absolute inset-0 overflow-hidden min-w-0 z-10",
|
|
59
|
-
children:
|
|
60
|
-
}) : /* @__PURE__ */
|
|
61
|
-
/* @__PURE__ */
|
|
62
|
-
className:
|
|
63
|
-
children:
|
|
65
|
+
children: D
|
|
66
|
+
}) : /* @__PURE__ */ h(p, { children: [
|
|
67
|
+
L(l.ORIGINAL) && /* @__PURE__ */ m("div", {
|
|
68
|
+
className: V(l.ORIGINAL, "hidden", !0),
|
|
69
|
+
children: D
|
|
64
70
|
}),
|
|
65
|
-
|
|
66
|
-
className:
|
|
67
|
-
children: u(
|
|
71
|
+
O && L(l.TRANSCRIPTION) ? /* @__PURE__ */ m("div", {
|
|
72
|
+
className: V(l.TRANSCRIPTION),
|
|
73
|
+
children: u(O, N === l.TRANSCRIPTION)
|
|
68
74
|
}) : null,
|
|
69
|
-
|
|
70
|
-
className:
|
|
71
|
-
children: u(
|
|
75
|
+
k && L(l.SUMMARY) ? /* @__PURE__ */ m("div", {
|
|
76
|
+
className: V(l.SUMMARY, "auto"),
|
|
77
|
+
children: u(k, N === l.SUMMARY)
|
|
72
78
|
}) : null,
|
|
73
|
-
|
|
74
|
-
className:
|
|
75
|
-
children: u(
|
|
79
|
+
A && L(l.TEMPLATE) ? /* @__PURE__ */ m("div", {
|
|
80
|
+
className: V(l.TEMPLATE, "hidden", !0),
|
|
81
|
+
children: u(A, N === l.TEMPLATE)
|
|
76
82
|
}) : null,
|
|
77
|
-
|
|
78
|
-
className:
|
|
79
|
-
children: u(
|
|
83
|
+
j && L(l.EDIT) ? /* @__PURE__ */ m("div", {
|
|
84
|
+
className: V(l.EDIT, "auto"),
|
|
85
|
+
children: u(j, N === l.EDIT)
|
|
80
86
|
}) : null,
|
|
81
|
-
|
|
82
|
-
className:
|
|
83
|
-
children: u(
|
|
87
|
+
M && L(l.VERSIONS) ? /* @__PURE__ */ m("div", {
|
|
88
|
+
className: V(l.VERSIONS, "auto"),
|
|
89
|
+
children: u(M, N === l.VERSIONS)
|
|
84
90
|
}) : null
|
|
85
91
|
] }))
|
|
86
92
|
]
|
|
@@ -89,6 +95,6 @@ var g = ({ title: g, isPending: _ = !1, isLoading: v = !1, loadingOverlay: y, is
|
|
|
89
95
|
});
|
|
90
96
|
};
|
|
91
97
|
//#endregion
|
|
92
|
-
export {
|
|
98
|
+
export { _ as FileViewSheetPanelContent };
|
|
93
99
|
|
|
94
100
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../src/components/file_view/components/file_view_sheet/components/file_view_sheet_panel_content/index.tsx"],"sourcesContent":["import { renderPanelContent } from \"../../utilities\";\nimport { useState } from \"react\";\nimport { FileX } from \"lucide-react\";\nimport { cn } from \"@/utilities/class\";\nimport {\n
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../../../src/components/file_view/components/file_view_sheet/components/file_view_sheet_panel_content/index.tsx"],"sourcesContent":["import { renderPanelContent } from \"../../utilities\";\nimport { useEffect, useState } from \"react\";\nimport { FileX } from \"lucide-react\";\nimport { cn } from \"@/utilities/class\";\nimport {\n SheetContent,\n SheetDescription,\n SheetHeader,\n SheetTitle,\n} from \"@/components/sheet\";\nimport { StatusMessage } from \"@/components/status_message\";\nimport { Tabs, TabsList, TabsTrigger } from \"@/components/tabs\";\nimport {\n FILE_VIEW_SHEET_TAB,\n type FileViewSheetTab,\n} from \"../../../../types/file_view_sheet\";\nimport type { FileViewSheetPanelProps } from \"../../types\";\n\nconst FileViewSheetPanelContent = ({\n lazyPanels = false,\n onActiveTabChange,\n title,\n isPending = false,\n isLoading = false,\n loadingOverlay,\n isError = false,\n tabs = [],\n defaultTab = FILE_VIEW_SHEET_TAB.ORIGINAL,\n showTabs = false,\n renderOriginal,\n renderTranscription,\n renderSummary,\n renderTemplate,\n renderEdit,\n renderVersions,\n}: FileViewSheetPanelProps) => {\n const [activeTab, setActiveTab] = useState<FileViewSheetTab>(defaultTab);\n const [visited, setVisited] = useState<Set<FileViewSheetTab>>(\n () => new Set([defaultTab]),\n );\n const shouldMount = (tab: FileViewSheetTab) =>\n !lazyPanels || visited.has(tab);\n useEffect(() => {\n onActiveTabChange?.(activeTab);\n }, [activeTab, onActiveTabChange]);\n const showViewer = !isPending && !isError;\n const simpleViewer = !showTabs;\n const floatingTabs = showTabs && tabs.length > 0;\n\n const panelClass = (\n tab: FileViewSheetTab,\n overflow: \"hidden\" | \"auto\" = \"hidden\",\n tabsOverlay = false,\n ) =>\n cn(\n \"absolute inset-0 min-w-0 transition-opacity duration-150\",\n overflow === \"auto\" ? \"overflow-auto\" : \"overflow-hidden\",\n floatingTabs && !tabsOverlay && \"pt-16\",\n activeTab === tab\n ? \"opacity-100 z-10\"\n : \"opacity-0 pointer-events-none z-0\",\n );\n\n return (\n <SheetContent className=\"sm:max-w-[95vw] w-full p-0 flex flex-col gap-0 overflow-hidden\">\n <SheetHeader className=\"px-6 flex flex-row items-center justify-between space-y-0 border-b bg-background relative z-10\">\n <SheetTitle className=\"line-clamp-1 flex-1 mr-4\">{title}</SheetTitle>\n <SheetDescription className=\"sr-only\">\n Aquí podrás ver la vista previa del archivo seleccionado.\n </SheetDescription>\n </SheetHeader>\n\n {isError && (\n <div className=\"p-4\">\n <StatusMessage\n title=\"Sucedio un error inesperado\"\n description=\"Vuelve a intentarlo dentro de unos minutos, si el error persiste, contacta con soporte.\"\n icon={FileX}\n />\n </div>\n )}\n\n <div className=\"flex-1 relative min-h-0 bg-background\">\n {(isPending || isLoading) && loadingOverlay ? (\n <div className=\"absolute inset-0 z-50 bg-background\">\n {loadingOverlay}\n </div>\n ) : null}\n\n {floatingTabs && (\n <div className=\"pointer-events-none absolute inset-x-0 top-5 z-30 flex justify-center px-4\">\n <Tabs value={activeTab} className=\"pointer-events-auto max-w-full\">\n <TabsList className=\"border-border bg-card/95 h-auto max-w-full flex-wrap border shadow-lg backdrop-blur-sm\">\n {tabs.map((tab) => (\n <TabsTrigger\n key={tab.id}\n className={cn(\n \"font-normal\",\n activeTab === tab.id && \"bg-background\",\n )}\n value={tab.id}\n onClick={() => {\n setVisited((previous) => new Set([...previous, tab.id]));\n setActiveTab(tab.id);\n }}\n >\n {tab.icon}\n {tab.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n </div>\n )}\n\n {showViewer &&\n (simpleViewer ? (\n <div className=\"absolute inset-0 overflow-hidden min-w-0 z-10\">\n {renderOriginal}\n </div>\n ) : (\n <>\n {shouldMount(FILE_VIEW_SHEET_TAB.ORIGINAL) && (\n <div\n className={panelClass(\n FILE_VIEW_SHEET_TAB.ORIGINAL,\n \"hidden\",\n true,\n )}\n >\n {renderOriginal}\n </div>\n )}\n {renderTranscription &&\n shouldMount(FILE_VIEW_SHEET_TAB.TRANSCRIPTION) ? (\n <div className={panelClass(FILE_VIEW_SHEET_TAB.TRANSCRIPTION)}>\n {renderPanelContent(\n renderTranscription,\n activeTab === FILE_VIEW_SHEET_TAB.TRANSCRIPTION,\n )}\n </div>\n ) : null}\n {renderSummary && shouldMount(FILE_VIEW_SHEET_TAB.SUMMARY) ? (\n <div\n className={panelClass(FILE_VIEW_SHEET_TAB.SUMMARY, \"auto\")}\n >\n {renderPanelContent(\n renderSummary,\n activeTab === FILE_VIEW_SHEET_TAB.SUMMARY,\n )}\n </div>\n ) : null}\n {renderTemplate && shouldMount(FILE_VIEW_SHEET_TAB.TEMPLATE) ? (\n <div\n className={panelClass(\n FILE_VIEW_SHEET_TAB.TEMPLATE,\n \"hidden\",\n true,\n )}\n >\n {renderPanelContent(\n renderTemplate,\n activeTab === FILE_VIEW_SHEET_TAB.TEMPLATE,\n )}\n </div>\n ) : null}\n {renderEdit && shouldMount(FILE_VIEW_SHEET_TAB.EDIT) ? (\n <div className={panelClass(FILE_VIEW_SHEET_TAB.EDIT, \"auto\")}>\n {renderPanelContent(\n renderEdit,\n activeTab === FILE_VIEW_SHEET_TAB.EDIT,\n )}\n </div>\n ) : null}\n {renderVersions && shouldMount(FILE_VIEW_SHEET_TAB.VERSIONS) ? (\n <div\n className={panelClass(FILE_VIEW_SHEET_TAB.VERSIONS, \"auto\")}\n >\n {renderPanelContent(\n renderVersions,\n activeTab === FILE_VIEW_SHEET_TAB.VERSIONS,\n )}\n </div>\n ) : null}\n </>\n ))}\n </div>\n </SheetContent>\n );\n};\n\nexport { FileViewSheetPanelContent };\n"],"mappings":";;;;;;;;;;AAkBA,IAAM,KAA6B,EACjC,gBAAa,IACb,sBACA,UACA,eAAY,IACZ,eAAY,IACZ,mBACA,aAAU,IACV,UAAO,EAAE,EACT,gBAAa,EAAoB,UACjC,cAAW,IACX,mBACA,wBACA,kBACA,mBACA,eACA,wBAC6B;CAC7B,IAAM,CAAC,GAAW,KAAgB,EAA2B,EAAW,EAClE,CAAC,GAAS,KAAc,QACtB,IAAI,IAAI,CAAC,EAAW,CAAC,CAC5B,EACK,KAAe,MACnB,CAAC,KAAc,EAAQ,IAAI,EAAI;AACjC,SAAgB;AACd,MAAoB,EAAU;IAC7B,CAAC,GAAW,EAAkB,CAAC;CAClC,IAAM,IAAa,CAAC,KAAa,CAAC,GAC5B,IAAe,CAAC,GAChB,IAAe,KAAY,EAAK,SAAS,GAEzC,KACJ,GACA,IAA8B,UAC9B,IAAc,OAEd,EACE,4DACA,MAAa,SAAS,kBAAkB,mBACxC,KAAgB,CAAC,KAAe,SAChC,MAAc,IACV,qBACA,oCACL;AAEH,QACE,kBAAC,GAAD;EAAc,WAAU;YAAxB;GACE,kBAAC,GAAD;IAAa,WAAU;cAAvB,CACE,kBAAC,GAAD;KAAY,WAAU;eAA4B;KAAmB,CAAA,EACrE,kBAAC,GAAD;KAAkB,WAAU;eAAU;KAEnB,CAAA,CACP;;GAEb,KACC,kBAAC,OAAD;IAAK,WAAU;cACb,kBAAC,GAAD;KACE,OAAM;KACN,aAAY;KACZ,MAAM;KACN,CAAA;IACE,CAAA;GAGR,kBAAC,OAAD;IAAK,WAAU;cAAf;MACI,KAAa,MAAc,IAC3B,kBAAC,OAAD;MAAK,WAAU;gBACZ;MACG,CAAA,GACJ;KAEH,KACC,kBAAC,OAAD;MAAK,WAAU;gBACb,kBAAC,GAAD;OAAM,OAAO;OAAW,WAAU;iBAChC,kBAAC,GAAD;QAAU,WAAU;kBACjB,EAAK,KAAK,MACT,kBAAC,GAAD;SAEE,WAAW,EACT,eACA,MAAc,EAAI,MAAM,gBACzB;SACD,OAAO,EAAI;SACX,eAAe;AAEb,UADA,GAAY,MAAa,IAAI,IAAI,CAAC,GAAG,GAAU,EAAI,GAAG,CAAC,CAAC,EACxD,EAAa,EAAI,GAAG;;mBATxB,CAYG,EAAI,MACJ,EAAI,MACO;WAbP,EAAI,GAaG,CACd;QACO,CAAA;OACN,CAAA;MACH,CAAA;KAGP,MACE,IACC,kBAAC,OAAD;MAAK,WAAU;gBACZ;MACG,CAAA,GAEN,kBAAA,GAAA,EAAA,UAAA;MACG,EAAY,EAAoB,SAAS,IACxC,kBAAC,OAAD;OACE,WAAW,EACT,EAAoB,UACpB,UACA,GACD;iBAEA;OACG,CAAA;MAEP,KACD,EAAY,EAAoB,cAAc,GAC5C,kBAAC,OAAD;OAAK,WAAW,EAAW,EAAoB,cAAc;iBAC1D,EACC,GACA,MAAc,EAAoB,cACnC;OACG,CAAA,GACJ;MACH,KAAiB,EAAY,EAAoB,QAAQ,GACxD,kBAAC,OAAD;OACE,WAAW,EAAW,EAAoB,SAAS,OAAO;iBAEzD,EACC,GACA,MAAc,EAAoB,QACnC;OACG,CAAA,GACJ;MACH,KAAkB,EAAY,EAAoB,SAAS,GAC1D,kBAAC,OAAD;OACE,WAAW,EACT,EAAoB,UACpB,UACA,GACD;iBAEA,EACC,GACA,MAAc,EAAoB,SACnC;OACG,CAAA,GACJ;MACH,KAAc,EAAY,EAAoB,KAAK,GAClD,kBAAC,OAAD;OAAK,WAAW,EAAW,EAAoB,MAAM,OAAO;iBACzD,EACC,GACA,MAAc,EAAoB,KACnC;OACG,CAAA,GACJ;MACH,KAAkB,EAAY,EAAoB,SAAS,GAC1D,kBAAC,OAAD;OACE,WAAW,EAAW,EAAoB,UAAU,OAAO;iBAE1D,EACC,GACA,MAAc,EAAoB,SACnC;OACG,CAAA,GACJ;MACH,EAAA,CAAA;KAEH;;GACO"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FileViewSheetProps } from './types';
|
|
2
2
|
import { FILE_VIEW_SHEET_TAB, FileViewSheetTab, FileViewSheetTabItem } from '../../types/file_view_sheet';
|
|
3
|
-
export declare const FileViewSheet: ({ open, onOpenChange, fileKey, ...panelProps }: FileViewSheetProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare const FileViewSheet: ({ open, onOpenChange, fileKey, lazyPanels, ...panelProps }: FileViewSheetProps) => import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export { FILE_VIEW_SHEET_TAB };
|
|
5
5
|
export type { FileViewSheetTab, FileViewSheetTabItem };
|
|
@@ -3,10 +3,13 @@ import "../../types/file_view_sheet.js";
|
|
|
3
3
|
import { FileViewSheetPanelContent as t } from "./components/file_view_sheet_panel_content/index.js";
|
|
4
4
|
import { jsx as n } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/file_view/components/file_view_sheet/index.tsx
|
|
6
|
-
var r = ({ open: r, onOpenChange: i, fileKey: a,
|
|
6
|
+
var r = ({ open: r, onOpenChange: i, fileKey: a, lazyPanels: o = !1, ...s }) => /* @__PURE__ */ n(e, {
|
|
7
7
|
open: r,
|
|
8
8
|
onOpenChange: i,
|
|
9
|
-
children: /* @__PURE__ */ n(t, {
|
|
9
|
+
children: (!o || r) && /* @__PURE__ */ n(t, {
|
|
10
|
+
lazyPanels: o,
|
|
11
|
+
...s
|
|
12
|
+
}, a)
|
|
10
13
|
});
|
|
11
14
|
//#endregion
|
|
12
15
|
export { r as FileViewSheet };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_view_sheet/index.tsx"],"sourcesContent":["import type { FileViewSheetProps } from \"./types\";\nimport { Sheet } from \"@/components/sheet\";\nimport {\n FILE_VIEW_SHEET_TAB,\n type FileViewSheetTab,\n type FileViewSheetTabItem,\n} from \"../../types/file_view_sheet\";\nimport { FileViewSheetPanelContent } from \"./components/file_view_sheet_panel_content\";\n\nexport const FileViewSheet = ({\n open,\n onOpenChange,\n fileKey,\n ...panelProps\n}: FileViewSheetProps) => (\n <Sheet open={open} onOpenChange={onOpenChange}>\n <FileViewSheetPanelContent
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../../../src/components/file_view/components/file_view_sheet/index.tsx"],"sourcesContent":["import type { FileViewSheetProps } from \"./types\";\nimport { Sheet } from \"@/components/sheet\";\nimport {\n FILE_VIEW_SHEET_TAB,\n type FileViewSheetTab,\n type FileViewSheetTabItem,\n} from \"../../types/file_view_sheet\";\nimport { FileViewSheetPanelContent } from \"./components/file_view_sheet_panel_content\";\n\nexport const FileViewSheet = ({\n open,\n onOpenChange,\n fileKey,\n lazyPanels = false,\n ...panelProps\n}: FileViewSheetProps) => (\n <Sheet open={open} onOpenChange={onOpenChange}>\n {(!lazyPanels || open) && (\n <FileViewSheetPanelContent\n key={fileKey}\n lazyPanels={lazyPanels}\n {...panelProps}\n />\n )}\n </Sheet>\n);\n\nexport { FILE_VIEW_SHEET_TAB };\nexport type { FileViewSheetTab, FileViewSheetTabItem };\n"],"mappings":";;;;;AASA,IAAa,KAAiB,EAC5B,SACA,iBACA,YACA,gBAAa,IACb,GAAG,QAEH,kBAAC,GAAD;CAAa;CAAoB;YAC7B,CAAC,KAAc,MACf,kBAAC,GAAD;EAEc;EACZ,GAAI;EACJ,EAHK,EAGL;CAEE,CAAA"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { FileViewSheetTab, FileViewSheetTabItem } from '../../../types/file_view_sheet';
|
|
2
2
|
export type FileViewSheetPanelRender = React.ReactNode | ((isActive: boolean) => React.ReactNode);
|
|
3
3
|
export interface FileViewSheetPanelProps {
|
|
4
|
+
lazyPanels?: boolean;
|
|
5
|
+
onActiveTabChange?: (tab: FileViewSheetTab) => void;
|
|
4
6
|
title: string;
|
|
5
7
|
isPending?: boolean;
|
|
6
8
|
isLoading?: boolean;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { FileImageViewerProps } from './types';
|
|
2
|
-
export declare const FileImageViewer: ({ url, mimeType, fileId, fileName, isPending, isError, onDownload, }: FileImageViewerProps) => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const FileImageViewer: ({ url, mimeType, fileId, fileName, isPending, isError, onDownload, onLoadingChange, }: FileImageViewerProps) => import("react/jsx-runtime").JSX.Element;
|
|
3
3
|
export type { FileImageViewerProps } from './types';
|