@aceshooting/lyra-ui 3.0.0 → 3.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -3
- package/custom-elements.json +12254 -4196
- package/dist/components/archive-viewer/archive-loader.d.ts +8 -0
- package/dist/components/archive-viewer/archive-loader.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-loader.js +19 -0
- package/dist/components/archive-viewer/archive-loader.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer-register.d.ts +2 -0
- package/dist/components/archive-viewer/archive-viewer-register.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer-register.js +8 -0
- package/dist/components/archive-viewer/archive-viewer-register.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.class.d.ts +47 -0
- package/dist/components/archive-viewer/archive-viewer.class.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.class.js +115 -0
- package/dist/components/archive-viewer/archive-viewer.class.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.d.ts +4 -0
- package/dist/components/archive-viewer/archive-viewer.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.js +7 -0
- package/dist/components/archive-viewer/archive-viewer.js.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.styles.d.ts +2 -0
- package/dist/components/archive-viewer/archive-viewer.styles.d.ts.map +1 -0
- package/dist/components/archive-viewer/archive-viewer.styles.js +14 -0
- package/dist/components/archive-viewer/archive-viewer.styles.js.map +1 -0
- package/dist/components/attachment-chip/attachment-chip.class.d.ts +16 -0
- package/dist/components/attachment-chip/attachment-chip.class.d.ts.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.class.js +54 -3
- package/dist/components/attachment-chip/attachment-chip.class.js.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.d.ts +2 -0
- package/dist/components/attachment-chip/attachment-chip.d.ts.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.js +2 -0
- package/dist/components/attachment-chip/attachment-chip.js.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.styles.d.ts.map +1 -1
- package/dist/components/attachment-chip/attachment-chip.styles.js +8 -0
- package/dist/components/attachment-chip/attachment-chip.styles.js.map +1 -1
- package/dist/components/calendar-viewer/calendar-loader.d.ts +5 -0
- package/dist/components/calendar-viewer/calendar-loader.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-loader.js +18 -0
- package/dist/components/calendar-viewer/calendar-loader.js.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts +55 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.js +123 -0
- package/dist/components/calendar-viewer/calendar-viewer.class.js.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.d.ts +3 -0
- package/dist/components/calendar-viewer/calendar-viewer.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.js +12 -0
- package/dist/components/calendar-viewer/calendar-viewer.js.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts +2 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.d.ts.map +1 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.js +16 -0
- package/dist/components/calendar-viewer/calendar-viewer.styles.js.map +1 -0
- package/dist/components/code-block/code-block-core.class.d.ts +3 -0
- package/dist/components/code-block/code-block-core.class.d.ts.map +1 -1
- package/dist/components/code-block/code-block-core.class.js +41 -16
- package/dist/components/code-block/code-block-core.class.js.map +1 -1
- package/dist/components/code-block/code-block.class.d.ts +3 -0
- package/dist/components/code-block/code-block.class.d.ts.map +1 -1
- package/dist/components/code-block/code-block.class.js +41 -16
- package/dist/components/code-block/code-block.class.js.map +1 -1
- package/dist/components/code-block/code-block.styles.d.ts.map +1 -1
- package/dist/components/code-block/code-block.styles.js +16 -0
- package/dist/components/code-block/code-block.styles.js.map +1 -1
- package/dist/components/code-block/code-loader.d.ts +2 -0
- package/dist/components/code-block/code-loader.d.ts.map +1 -1
- package/dist/components/code-block/code-loader.js +14 -4
- package/dist/components/code-block/code-loader.js.map +1 -1
- package/dist/components/code-block/greycat-language.d.ts +9 -0
- package/dist/components/code-block/greycat-language.d.ts.map +1 -0
- package/dist/components/code-block/greycat-language.js +73 -0
- package/dist/components/code-block/greycat-language.js.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.class.d.ts +31 -0
- package/dist/components/contact-viewer/contact-viewer.class.d.ts.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.class.js +92 -0
- package/dist/components/contact-viewer/contact-viewer.class.js.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.d.ts +3 -0
- package/dist/components/contact-viewer/contact-viewer.d.ts.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.js +13 -0
- package/dist/components/contact-viewer/contact-viewer.js.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.styles.d.ts +2 -0
- package/dist/components/contact-viewer/contact-viewer.styles.d.ts.map +1 -0
- package/dist/components/contact-viewer/contact-viewer.styles.js +16 -0
- package/dist/components/contact-viewer/contact-viewer.styles.js.map +1 -0
- package/dist/components/contact-viewer/vcard.d.ts +31 -0
- package/dist/components/contact-viewer/vcard.d.ts.map +1 -0
- package/dist/components/contact-viewer/vcard.js +87 -0
- package/dist/components/contact-viewer/vcard.js.map +1 -0
- package/dist/components/csv-viewer/csv-loader.d.ts +8 -0
- package/dist/components/csv-viewer/csv-loader.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-loader.js +19 -0
- package/dist/components/csv-viewer/csv-loader.js.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.class.d.ts +31 -0
- package/dist/components/csv-viewer/csv-viewer.class.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.class.js +108 -0
- package/dist/components/csv-viewer/csv-viewer.class.js.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.d.ts +3 -0
- package/dist/components/csv-viewer/csv-viewer.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.js +9 -0
- package/dist/components/csv-viewer/csv-viewer.js.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.styles.d.ts +2 -0
- package/dist/components/csv-viewer/csv-viewer.styles.d.ts.map +1 -0
- package/dist/components/csv-viewer/csv-viewer.styles.js +14 -0
- package/dist/components/csv-viewer/csv-viewer.styles.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-loader.d.ts +7 -0
- package/dist/components/dataset-viewer/dataset-loader.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-loader.js +19 -0
- package/dist/components/dataset-viewer/dataset-loader.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.d.ts +34 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.js +93 -0
- package/dist/components/dataset-viewer/dataset-viewer.class.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.d.ts +3 -0
- package/dist/components/dataset-viewer/dataset-viewer.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.js +13 -0
- package/dist/components/dataset-viewer/dataset-viewer.js.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts +2 -0
- package/dist/components/dataset-viewer/dataset-viewer.styles.d.ts.map +1 -0
- package/dist/components/dataset-viewer/dataset-viewer.styles.js +13 -0
- package/dist/components/dataset-viewer/dataset-viewer.styles.js.map +1 -0
- package/dist/components/document-viewer/document-viewer.class.d.ts +55 -0
- package/dist/components/document-viewer/document-viewer.class.d.ts.map +1 -0
- package/dist/components/document-viewer/document-viewer.class.js +160 -0
- package/dist/components/document-viewer/document-viewer.class.js.map +1 -0
- package/dist/components/document-viewer/document-viewer.d.ts +5 -0
- package/dist/components/document-viewer/document-viewer.d.ts.map +1 -0
- package/dist/components/document-viewer/document-viewer.js +8 -0
- package/dist/components/document-viewer/document-viewer.js.map +1 -0
- package/dist/components/document-viewer/document-viewer.styles.d.ts +2 -0
- package/dist/components/document-viewer/document-viewer.styles.d.ts.map +1 -0
- package/dist/components/document-viewer/document-viewer.styles.js +48 -0
- package/dist/components/document-viewer/document-viewer.styles.js.map +1 -0
- package/dist/components/document-viewer/registry.d.ts +30 -0
- package/dist/components/document-viewer/registry.d.ts.map +1 -0
- package/dist/components/document-viewer/registry.js +42 -0
- package/dist/components/document-viewer/registry.js.map +1 -0
- package/dist/components/docx-viewer/docx-loader.d.ts +11 -0
- package/dist/components/docx-viewer/docx-loader.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-loader.js +39 -0
- package/dist/components/docx-viewer/docx-loader.js.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.class.d.ts +42 -0
- package/dist/components/docx-viewer/docx-viewer.class.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.class.js +131 -0
- package/dist/components/docx-viewer/docx-viewer.class.js.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.d.ts +3 -0
- package/dist/components/docx-viewer/docx-viewer.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.js +12 -0
- package/dist/components/docx-viewer/docx-viewer.js.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.styles.d.ts +2 -0
- package/dist/components/docx-viewer/docx-viewer.styles.d.ts.map +1 -0
- package/dist/components/docx-viewer/docx-viewer.styles.js +99 -0
- package/dist/components/docx-viewer/docx-viewer.styles.js.map +1 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts +2 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.d.ts.map +1 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js +3 -0
- package/dist/components/docx-viewer/fixtures/minimal-docx-fixture.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-loader.d.ts +9 -0
- package/dist/components/ebook-viewer/ebook-loader.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-loader.js +21 -0
- package/dist/components/ebook-viewer/ebook-loader.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.d.ts +2 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.js +9 -0
- package/dist/components/ebook-viewer/ebook-viewer-register.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.d.ts +51 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.js +164 -0
- package/dist/components/ebook-viewer/ebook-viewer.class.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.d.ts +2 -0
- package/dist/components/ebook-viewer/ebook-viewer.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.js +5 -0
- package/dist/components/ebook-viewer/ebook-viewer.js.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts +2 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.d.ts.map +1 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.js +73 -0
- package/dist/components/ebook-viewer/ebook-viewer.styles.js.map +1 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts +2 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.d.ts.map +1 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js +2 -0
- package/dist/components/ebook-viewer/fixtures/minimal-epub-fixture.js.map +1 -0
- package/dist/components/email-viewer/email-loader.d.ts +10 -0
- package/dist/components/email-viewer/email-loader.d.ts.map +1 -0
- package/dist/components/email-viewer/email-loader.js +38 -0
- package/dist/components/email-viewer/email-loader.js.map +1 -0
- package/dist/components/email-viewer/email-viewer.class.d.ts +72 -0
- package/dist/components/email-viewer/email-viewer.class.d.ts.map +1 -0
- package/dist/components/email-viewer/email-viewer.class.js +154 -0
- package/dist/components/email-viewer/email-viewer.class.js.map +1 -0
- package/dist/components/email-viewer/email-viewer.d.ts +3 -0
- package/dist/components/email-viewer/email-viewer.d.ts.map +1 -0
- package/dist/components/email-viewer/email-viewer.js +12 -0
- package/dist/components/email-viewer/email-viewer.js.map +1 -0
- package/dist/components/email-viewer/email-viewer.styles.d.ts +2 -0
- package/dist/components/email-viewer/email-viewer.styles.d.ts.map +1 -0
- package/dist/components/email-viewer/email-viewer.styles.js +35 -0
- package/dist/components/email-viewer/email-viewer.styles.js.map +1 -0
- package/dist/components/file-icon/file-icon.class.d.ts +31 -0
- package/dist/components/file-icon/file-icon.class.d.ts.map +1 -0
- package/dist/components/file-icon/file-icon.class.js +74 -0
- package/dist/components/file-icon/file-icon.class.js.map +1 -0
- package/dist/components/file-icon/file-icon.d.ts +3 -0
- package/dist/components/file-icon/file-icon.d.ts.map +1 -0
- package/dist/components/file-icon/file-icon.js +6 -0
- package/dist/components/file-icon/file-icon.js.map +1 -0
- package/dist/components/file-icon/file-icon.styles.d.ts +2 -0
- package/dist/components/file-icon/file-icon.styles.d.ts.map +1 -0
- package/dist/components/file-icon/file-icon.styles.js +23 -0
- package/dist/components/file-icon/file-icon.styles.js.map +1 -0
- package/dist/components/file-icon/file-type-metadata.d.ts +14 -0
- package/dist/components/file-icon/file-type-metadata.d.ts.map +1 -0
- package/dist/components/file-icon/file-type-metadata.js +81 -0
- package/dist/components/file-icon/file-type-metadata.js.map +1 -0
- package/dist/components/html-viewer/dompurify-loader.d.ts +7 -0
- package/dist/components/html-viewer/dompurify-loader.d.ts.map +1 -0
- package/dist/components/html-viewer/dompurify-loader.js +19 -0
- package/dist/components/html-viewer/dompurify-loader.js.map +1 -0
- package/dist/components/html-viewer/html-viewer.class.d.ts +29 -0
- package/dist/components/html-viewer/html-viewer.class.d.ts.map +1 -0
- package/dist/components/html-viewer/html-viewer.class.js +88 -0
- package/dist/components/html-viewer/html-viewer.class.js.map +1 -0
- package/dist/components/html-viewer/html-viewer.d.ts +2 -0
- package/dist/components/html-viewer/html-viewer.d.ts.map +1 -0
- package/dist/components/html-viewer/html-viewer.js +15 -0
- package/dist/components/html-viewer/html-viewer.js.map +1 -0
- package/dist/components/html-viewer/html-viewer.styles.d.ts +2 -0
- package/dist/components/html-viewer/html-viewer.styles.d.ts.map +1 -0
- package/dist/components/html-viewer/html-viewer.styles.js +26 -0
- package/dist/components/html-viewer/html-viewer.styles.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-loader.d.ts +6 -0
- package/dist/components/pdf-viewer/pdf-loader.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-loader.js +22 -0
- package/dist/components/pdf-viewer/pdf-loader.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.d.ts +80 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.js +296 -0
- package/dist/components/pdf-viewer/pdf-viewer.class.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts +2 -0
- package/dist/components/pdf-viewer/pdf-viewer.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.js +13 -0
- package/dist/components/pdf-viewer/pdf-viewer.js.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts +2 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.d.ts.map +1 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.js +19 -0
- package/dist/components/pdf-viewer/pdf-viewer.styles.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-loader.d.ts +5 -0
- package/dist/components/pptx-viewer/pptx-loader.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-loader.js +20 -0
- package/dist/components/pptx-viewer/pptx-loader.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.d.ts +68 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.js +205 -0
- package/dist/components/pptx-viewer/pptx-viewer.class.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.d.ts +2 -0
- package/dist/components/pptx-viewer/pptx-viewer.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.js +11 -0
- package/dist/components/pptx-viewer/pptx-viewer.js.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts +2 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.d.ts.map +1 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.js +66 -0
- package/dist/components/pptx-viewer/pptx-viewer.styles.js.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-loader.d.ts +8 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-loader.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-loader.js +19 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-loader.js.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts +32 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js +99 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.class.js.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts +3 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js +12 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.js.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts +2 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.d.ts.map +1 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js +14 -0
- package/dist/components/spreadsheet-viewer/spreadsheet-viewer.styles.js.map +1 -0
- package/dist/components/svg-viewer/dompurify-loader.d.ts +7 -0
- package/dist/components/svg-viewer/dompurify-loader.d.ts.map +1 -0
- package/dist/components/svg-viewer/dompurify-loader.js +19 -0
- package/dist/components/svg-viewer/dompurify-loader.js.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.class.d.ts +29 -0
- package/dist/components/svg-viewer/svg-viewer.class.d.ts.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.class.js +95 -0
- package/dist/components/svg-viewer/svg-viewer.class.js.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.d.ts +2 -0
- package/dist/components/svg-viewer/svg-viewer.d.ts.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.js +15 -0
- package/dist/components/svg-viewer/svg-viewer.js.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.styles.d.ts +2 -0
- package/dist/components/svg-viewer/svg-viewer.styles.d.ts.map +1 -0
- package/dist/components/svg-viewer/svg-viewer.styles.js +50 -0
- package/dist/components/svg-viewer/svg-viewer.styles.js.map +1 -0
- package/dist/internal/localization.d.ts +1 -1
- package/dist/internal/localization.d.ts.map +1 -1
- package/dist/internal/localization.js +65 -0
- package/dist/internal/localization.js.map +1 -1
- package/dist/internal/root-registration-allowlist.d.ts +1 -1
- package/dist/internal/root-registration-allowlist.d.ts.map +1 -1
- package/dist/internal/root-registration-allowlist.js +15 -0
- package/dist/internal/root-registration-allowlist.js.map +1 -1
- package/dist/lyra.d.ts +44 -1
- package/dist/lyra.d.ts.map +1 -1
- package/dist/lyra.js +32 -0
- package/dist/lyra.js.map +1 -1
- package/llms-full.txt +331 -8
- package/llms.txt +2 -1
- package/package.json +83 -3
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { type PropertyValues, type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
export interface ParsedEmailAttachment {
|
|
4
|
+
filename: string;
|
|
5
|
+
mimeType: string;
|
|
6
|
+
size: number;
|
|
7
|
+
}
|
|
8
|
+
export interface ParsedEmail {
|
|
9
|
+
from: string;
|
|
10
|
+
to: string;
|
|
11
|
+
subject: string;
|
|
12
|
+
date: string;
|
|
13
|
+
bodyHtml: string | null;
|
|
14
|
+
bodyText: string | null;
|
|
15
|
+
attachments: ParsedEmailAttachment[];
|
|
16
|
+
}
|
|
17
|
+
export interface LyraEmailViewerEventMap {
|
|
18
|
+
'lyra-render-error': CustomEvent<{
|
|
19
|
+
error: unknown;
|
|
20
|
+
}>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Parses `.eml` messages with the optional `postal-mime` peer and renders
|
|
24
|
+
* their HTML body only after DOMPurify sanitization. Plain-text messages remain
|
|
25
|
+
* useful without DOMPurify; attachments are listed as metadata, never opened.
|
|
26
|
+
*
|
|
27
|
+
* @customElement lyra-email-viewer
|
|
28
|
+
* @event lyra-render-error - Fired when fetching or parsing the message fails.
|
|
29
|
+
* @csspart base - The root container.
|
|
30
|
+
* @csspart headers - Message metadata.
|
|
31
|
+
* @csspart from-label - The localized sender label.
|
|
32
|
+
* @csspart from - The sender address.
|
|
33
|
+
* @csspart to-label - The localized recipient label.
|
|
34
|
+
* @csspart to - The recipient addresses.
|
|
35
|
+
* @csspart subject-label - The localized subject label.
|
|
36
|
+
* @csspart subject - The message subject.
|
|
37
|
+
* @csspart date-label - The localized date label.
|
|
38
|
+
* @csspart date - The message date.
|
|
39
|
+
* @csspart body - The scrollable message body.
|
|
40
|
+
* @csspart body-html - The sanitized HTML body.
|
|
41
|
+
* @csspart body-text - The plain-text body.
|
|
42
|
+
* @csspart attachments - The attachment region.
|
|
43
|
+
* @csspart attachments-label - The localized attachment heading.
|
|
44
|
+
* @csspart attachment-list - The attachment list.
|
|
45
|
+
* @csspart attachment-item - An attachment metadata item.
|
|
46
|
+
* @csspart error - The error region.
|
|
47
|
+
* @csspart spinner - The loading region.
|
|
48
|
+
*/
|
|
49
|
+
export declare class LyraEmailViewer extends LyraElement<LyraEmailViewerEventMap> {
|
|
50
|
+
static styles: import("lit").CSSResultGroup[];
|
|
51
|
+
/** URL to fetch and parse as an RFC 822 message. */
|
|
52
|
+
src: string;
|
|
53
|
+
/** Display name associated with the message. */
|
|
54
|
+
name: string;
|
|
55
|
+
/** CSS length that caps the scrollable body. */
|
|
56
|
+
maxHeight: string;
|
|
57
|
+
private fetchState;
|
|
58
|
+
private generation;
|
|
59
|
+
protected willUpdate(changed: PropertyValues): void;
|
|
60
|
+
private load;
|
|
61
|
+
private parse;
|
|
62
|
+
private renderHeaders;
|
|
63
|
+
private renderAttachments;
|
|
64
|
+
private renderBody;
|
|
65
|
+
render(): TemplateResult;
|
|
66
|
+
}
|
|
67
|
+
declare global {
|
|
68
|
+
interface HTMLElementTagNameMap {
|
|
69
|
+
'lyra-email-viewer': LyraEmailViewer;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=email-viewer.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.class.d.ts","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAI9E,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAM7D,MAAM,WAAW,qBAAqB;IAAG,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;CAAE;AAC5F,MAAM,WAAW,WAAW;IAAG,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,qBAAqB,EAAE,CAAC;CAAE;AAGjL,MAAM,WAAW,uBAAuB;IAAG,mBAAmB,EAAE,WAAW,CAAC;QAAE,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAAE;AAWlG;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,eAAgB,SAAQ,WAAW,CAAC,uBAAuB,CAAC;IACvE,MAAM,CAAC,MAAM,iCAAwC;IACrD,oDAAoD;IACxC,GAAG,SAAM;IACrB,gDAAgD;IACpC,IAAI,SAAM;IACtB,gDAAgD;IACT,SAAS,SAAM;IAC7C,OAAO,CAAC,UAAU,CAAqC;IAChE,OAAO,CAAC,UAAU,CAAK;IAEvB,SAAS,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAAkE;YAEvG,IAAI;YAkBJ,KAAK;IAqBnB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,iBAAiB;IAOzB,OAAO,CAAC,UAAU;IASlB,MAAM,IAAI,cAAc,CAAqJ;CAC9K;AAED,OAAO,CAAC,MAAM,CAAC;IAAE,UAAU,qBAAqB;QAAG,mBAAmB,EAAE,eAAe,CAAC;KAAE;CAAE"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property, state } from 'lit/decorators.js';
|
|
9
|
+
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
10
|
+
import { srOnly } from '../../internal/a11y.js';
|
|
11
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
12
|
+
import { safeFetchUrl } from '../../internal/safe-url.js';
|
|
13
|
+
import { formatFileSize } from '../attachment-chip/attachment-chip.class.js';
|
|
14
|
+
import { loadEmailDeps } from './email-loader.js';
|
|
15
|
+
import { styles } from './email-viewer.styles.js';
|
|
16
|
+
function formatAddress(value) {
|
|
17
|
+
if (!value)
|
|
18
|
+
return '';
|
|
19
|
+
if (value.group)
|
|
20
|
+
return value.group.map(formatAddress).filter(Boolean).join(', ');
|
|
21
|
+
if (value.name && value.address)
|
|
22
|
+
return `${value.name} <${value.address}>`;
|
|
23
|
+
return value.address ?? value.name ?? '';
|
|
24
|
+
}
|
|
25
|
+
function formatAddresses(values) { return (values ?? []).map(formatAddress).filter(Boolean).join(', '); }
|
|
26
|
+
/**
|
|
27
|
+
* Parses `.eml` messages with the optional `postal-mime` peer and renders
|
|
28
|
+
* their HTML body only after DOMPurify sanitization. Plain-text messages remain
|
|
29
|
+
* useful without DOMPurify; attachments are listed as metadata, never opened.
|
|
30
|
+
*
|
|
31
|
+
* @customElement lyra-email-viewer
|
|
32
|
+
* @event lyra-render-error - Fired when fetching or parsing the message fails.
|
|
33
|
+
* @csspart base - The root container.
|
|
34
|
+
* @csspart headers - Message metadata.
|
|
35
|
+
* @csspart from-label - The localized sender label.
|
|
36
|
+
* @csspart from - The sender address.
|
|
37
|
+
* @csspart to-label - The localized recipient label.
|
|
38
|
+
* @csspart to - The recipient addresses.
|
|
39
|
+
* @csspart subject-label - The localized subject label.
|
|
40
|
+
* @csspart subject - The message subject.
|
|
41
|
+
* @csspart date-label - The localized date label.
|
|
42
|
+
* @csspart date - The message date.
|
|
43
|
+
* @csspart body - The scrollable message body.
|
|
44
|
+
* @csspart body-html - The sanitized HTML body.
|
|
45
|
+
* @csspart body-text - The plain-text body.
|
|
46
|
+
* @csspart attachments - The attachment region.
|
|
47
|
+
* @csspart attachments-label - The localized attachment heading.
|
|
48
|
+
* @csspart attachment-list - The attachment list.
|
|
49
|
+
* @csspart attachment-item - An attachment metadata item.
|
|
50
|
+
* @csspart error - The error region.
|
|
51
|
+
* @csspart spinner - The loading region.
|
|
52
|
+
*/
|
|
53
|
+
export class LyraEmailViewer extends LyraElement {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
/** URL to fetch and parse as an RFC 822 message. */
|
|
57
|
+
this.src = '';
|
|
58
|
+
/** Display name associated with the message. */
|
|
59
|
+
this.name = '';
|
|
60
|
+
/** CSS length that caps the scrollable body. */
|
|
61
|
+
this.maxHeight = '';
|
|
62
|
+
this.fetchState = { kind: 'idle' };
|
|
63
|
+
this.generation = 0;
|
|
64
|
+
}
|
|
65
|
+
static { this.styles = [LyraElement.styles, styles, srOnly]; }
|
|
66
|
+
willUpdate(changed) { if (!this.hasUpdated || changed.has('src'))
|
|
67
|
+
void this.load(); }
|
|
68
|
+
async load() {
|
|
69
|
+
const generation = ++this.generation;
|
|
70
|
+
if (!this.src) {
|
|
71
|
+
this.fetchState = { kind: 'idle' };
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const url = safeFetchUrl(this.src);
|
|
75
|
+
if (!url) {
|
|
76
|
+
this.fetchState = { kind: 'error', message: this.localize('documentPreviewUrlNotAllowed') };
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this.fetchState = { kind: 'loading' };
|
|
80
|
+
try {
|
|
81
|
+
const response = await fetch(url);
|
|
82
|
+
if (!response.ok)
|
|
83
|
+
throw new Error(`${response.status} ${response.statusText}`);
|
|
84
|
+
const email = await this.parse(await response.arrayBuffer());
|
|
85
|
+
if (generation === this.generation)
|
|
86
|
+
this.fetchState = { kind: 'loaded', email };
|
|
87
|
+
}
|
|
88
|
+
catch (error) {
|
|
89
|
+
if (generation !== this.generation)
|
|
90
|
+
return;
|
|
91
|
+
this.fetchState = { kind: 'error', message: error instanceof Error ? error.message : this.localize('documentPreviewFailedToLoad') };
|
|
92
|
+
this.emit('lyra-render-error', { error });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async parse(buffer) {
|
|
96
|
+
const { PostalMime, DOMPurify } = await loadEmailDeps();
|
|
97
|
+
if (!PostalMime)
|
|
98
|
+
throw new Error(this.localize('emailViewerMissingParser'));
|
|
99
|
+
const parsed = await PostalMime.parse(buffer);
|
|
100
|
+
const bodyHtml = parsed.html && DOMPurify ? DOMPurify.sanitize(parsed.html) : null;
|
|
101
|
+
const content = parsed.attachments ?? [];
|
|
102
|
+
return {
|
|
103
|
+
from: formatAddress(parsed.from),
|
|
104
|
+
to: formatAddresses(parsed.to),
|
|
105
|
+
subject: parsed.subject ?? '',
|
|
106
|
+
date: parsed.date ?? '',
|
|
107
|
+
bodyHtml,
|
|
108
|
+
bodyText: bodyHtml ? null : (parsed.text ?? null),
|
|
109
|
+
attachments: content.map((attachment) => ({
|
|
110
|
+
filename: attachment.filename || this.localize('documentPreviewGenericFile'),
|
|
111
|
+
mimeType: attachment.mimeType ?? '',
|
|
112
|
+
size: attachment.content instanceof ArrayBuffer || attachment.content instanceof Uint8Array ? attachment.content.byteLength : attachment.content.length,
|
|
113
|
+
})),
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
renderHeaders(email) {
|
|
117
|
+
return html `<div part="headers">
|
|
118
|
+
<span part="from-label">${this.localize('emailViewerFrom')}</span><span part="from">${email.from}</span>
|
|
119
|
+
<span part="to-label">${this.localize('emailViewerTo')}</span><span part="to">${email.to}</span>
|
|
120
|
+
<span part="subject-label">${this.localize('emailViewerSubject')}</span><span part="subject">${email.subject || this.localize('emailViewerNoSubject')}</span>
|
|
121
|
+
<span part="date-label">${this.localize('emailViewerDate')}</span><span part="date">${email.date}</span>
|
|
122
|
+
</div>`;
|
|
123
|
+
}
|
|
124
|
+
renderAttachments(attachments) {
|
|
125
|
+
if (!attachments.length)
|
|
126
|
+
return nothing;
|
|
127
|
+
return html `<div part="attachments"><span part="attachments-label">${this.localize('emailViewerAttachments')}</span><ul part="attachment-list">
|
|
128
|
+
${attachments.map((attachment) => html `<li part="attachment-item"><span>${attachment.filename}</span><span>${formatFileSize(attachment.size)}</span></li>`)}
|
|
129
|
+
</ul></div>`;
|
|
130
|
+
}
|
|
131
|
+
renderBody() {
|
|
132
|
+
switch (this.fetchState.kind) {
|
|
133
|
+
case 'loaded': return html `${this.renderHeaders(this.fetchState.email)}<div part="body">${this.fetchState.email.bodyHtml !== null ? html `<div part="body-html">${unsafeHTML(this.fetchState.email.bodyHtml)}</div>` : html `<pre part="body-text">${this.fetchState.email.bodyText ?? ''}</pre>`}</div>${this.renderAttachments(this.fetchState.email.attachments)}`;
|
|
134
|
+
case 'loading': return html `<div part="spinner" role="status"><span class="sr-only">${this.localize('loadingDocument')}</span></div>`;
|
|
135
|
+
case 'error': return html `<div part="error" role="alert">${this.fetchState.message}</div>`;
|
|
136
|
+
case 'idle':
|
|
137
|
+
default: return html `<p class="empty-note">${this.localize('documentPreviewEmpty', undefined, { type: this.localize('documentPreviewTypeEmail') })}</p>`;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
render() { return html `<div part="base" style=${this.maxHeight ? `--lyra-email-viewer-max-height:${this.maxHeight}` : nothing}>${this.renderBody()}</div>`; }
|
|
141
|
+
}
|
|
142
|
+
__decorate([
|
|
143
|
+
property()
|
|
144
|
+
], LyraEmailViewer.prototype, "src", void 0);
|
|
145
|
+
__decorate([
|
|
146
|
+
property()
|
|
147
|
+
], LyraEmailViewer.prototype, "name", void 0);
|
|
148
|
+
__decorate([
|
|
149
|
+
property({ attribute: 'max-height' })
|
|
150
|
+
], LyraEmailViewer.prototype, "maxHeight", void 0);
|
|
151
|
+
__decorate([
|
|
152
|
+
state()
|
|
153
|
+
], LyraEmailViewer.prototype, "fetchState", void 0);
|
|
154
|
+
//# sourceMappingURL=email-viewer.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.class.js","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.class.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.d.ts","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export * from './email-loader.js';
|
|
2
|
+
export * from './email-viewer.class.js';
|
|
3
|
+
import { html } from 'lit';
|
|
4
|
+
import { defineElement } from '../../internal/prefix.js';
|
|
5
|
+
import { registerDocumentRenderer } from '../document-viewer/registry.js';
|
|
6
|
+
import { LyraEmailViewer } from './email-viewer.class.js';
|
|
7
|
+
defineElement('email-viewer', LyraEmailViewer);
|
|
8
|
+
registerDocumentRenderer('message/rfc822', {
|
|
9
|
+
matches: (file) => file.name.toLowerCase().endsWith('.eml'),
|
|
10
|
+
render: (file) => html `<lyra-email-viewer src=${file.src} name=${file.name}></lyra-email-viewer>`,
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=email-viewer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.js","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,wBAAwB,EAAqB,MAAM,gCAAgC,CAAC;AAC7F,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;AAE/C,wBAAwB,CAAC,gBAAgB,EAAE;IACzC,OAAO,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;IACzE,MAAM,EAAE,CAAC,IAAkB,EAAE,EAAE,CAAC,IAAI,CAAA,0BAA0B,IAAI,CAAC,GAAG,SAAS,IAAI,CAAC,IAAI,uBAAuB;CAChH,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.styles.d.ts","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAgClB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host { display: block; --lyra-email-viewer-max-height: none; }
|
|
4
|
+
[part='base'] {
|
|
5
|
+
display: flex;
|
|
6
|
+
flex-direction: column;
|
|
7
|
+
box-sizing: border-box;
|
|
8
|
+
border: var(--lyra-border-width-thin) solid var(--lyra-color-border);
|
|
9
|
+
border-radius: var(--lyra-radius);
|
|
10
|
+
background: var(--lyra-color-surface);
|
|
11
|
+
overflow: hidden;
|
|
12
|
+
}
|
|
13
|
+
[part='headers'] {
|
|
14
|
+
display: grid;
|
|
15
|
+
grid-template-columns: auto minmax(0, 1fr);
|
|
16
|
+
gap: var(--lyra-space-2xs) var(--lyra-space-s);
|
|
17
|
+
padding: var(--lyra-space-m);
|
|
18
|
+
border-block-end: var(--lyra-border-width-thin) solid var(--lyra-color-border);
|
|
19
|
+
font-size: var(--lyra-font-size-md-sm);
|
|
20
|
+
}
|
|
21
|
+
[part$='-label'] { color: var(--lyra-color-text-quiet); font-weight: var(--lyra-font-weight-semibold); text-align: end; }
|
|
22
|
+
[part='subject'] { font-weight: var(--lyra-font-weight-semibold); overflow-wrap: anywhere; }
|
|
23
|
+
[part='body'] { box-sizing: border-box; overflow: auto; max-block-size: var(--lyra-email-viewer-max-height); padding: var(--lyra-space-m); }
|
|
24
|
+
[part='body-html'], [part='body-text'] { color: var(--lyra-color-text); font-size: var(--lyra-font-size-md-sm); line-height: var(--lyra-line-height-normal); }
|
|
25
|
+
[part='body-html'] { overflow-wrap: anywhere; }
|
|
26
|
+
[part='body-text'] { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
|
|
27
|
+
[part='attachments'] { padding: var(--lyra-space-m); border-block-start: var(--lyra-border-width-thin) solid var(--lyra-color-border); }
|
|
28
|
+
[part='attachments-label'] { display: block; margin-block-end: var(--lyra-space-xs); color: var(--lyra-color-text-quiet); font-weight: var(--lyra-font-weight-semibold); font-size: var(--lyra-font-size-xs); text-transform: uppercase; }
|
|
29
|
+
[part='attachment-list'] { display: flex; flex-direction: column; gap: var(--lyra-space-2xs); margin: 0; padding: 0; list-style: none; }
|
|
30
|
+
[part='attachment-item'] { display: flex; justify-content: space-between; gap: var(--lyra-space-s); padding: var(--lyra-space-xs) var(--lyra-space-s); border-radius: var(--lyra-radius); background: var(--lyra-color-brand-quiet); font-size: var(--lyra-font-size-sm); }
|
|
31
|
+
.empty-note { margin: 0; padding: var(--lyra-space-m); color: var(--lyra-color-text-quiet); font-size: var(--lyra-font-size-md-sm); }
|
|
32
|
+
[part='error'] { margin: 0; padding: var(--lyra-space-l); color: var(--lyra-color-danger); font-size: var(--lyra-font-size-md-sm); text-align: center; }
|
|
33
|
+
[part='spinner'] { display: flex; justify-content: center; padding: var(--lyra-space-l); }
|
|
34
|
+
`;
|
|
35
|
+
//# sourceMappingURL=email-viewer.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-viewer.styles.js","sourceRoot":"","sources":["../../../src/components/email-viewer/email-viewer.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCxB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { type TemplateResult } from 'lit';
|
|
2
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
3
|
+
export type LyraFileIconVariant = 'icon' | 'label';
|
|
4
|
+
/**
|
|
5
|
+
* Displays a localized, tokenized file-type badge from a MIME type.
|
|
6
|
+
*
|
|
7
|
+
* @customElement lyra-file-icon
|
|
8
|
+
* @csspart base - The outer presentation wrapper.
|
|
9
|
+
* @csspart icon - The format badge.
|
|
10
|
+
* @csspart label - The localized format label in `variant="label"` mode.
|
|
11
|
+
*/
|
|
12
|
+
export declare class LyraFileIcon extends LyraElement {
|
|
13
|
+
static styles: import("lit").CSSResultGroup[];
|
|
14
|
+
/** MIME type used to resolve metadata. */
|
|
15
|
+
mimeType: string;
|
|
16
|
+
/** Optional filename used for fallback detection with an empty or generic MIME type. */
|
|
17
|
+
name: string;
|
|
18
|
+
/** Whether the badge is decorative and hidden from assistive technology. */
|
|
19
|
+
decorative: boolean;
|
|
20
|
+
/** Shows only the icon or the icon together with its localized label. */
|
|
21
|
+
variant: LyraFileIconVariant;
|
|
22
|
+
/** Optional visible/accessibility label override. */
|
|
23
|
+
label: string;
|
|
24
|
+
render(): TemplateResult;
|
|
25
|
+
}
|
|
26
|
+
declare global {
|
|
27
|
+
interface HTMLElementTagNameMap {
|
|
28
|
+
'lyra-file-icon': LyraFileIcon;
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=file-icon.class.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.class.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAEzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAmB7D,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD;;;;;;;GAOG;AACH,qBAAa,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAC,MAAM,iCAAgC;IAE7C,0CAA0C;IACJ,QAAQ,SAAM;IACpD,wFAAwF;IAC5E,IAAI,SAAM;IACtB,4EAA4E;IAChC,UAAU,UAAS;IAC/D,yEAAyE;IAC5C,OAAO,EAAE,mBAAmB,CAAU;IACnE,qDAAqD;IACzC,KAAK,SAAM;IAEvB,MAAM,IAAI,cAAc,CASvB;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAAG,gBAAgB,EAAE,YAAY,CAAC;KAAE;CACpE"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { html, nothing } from 'lit';
|
|
8
|
+
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { LyraElement } from '../../internal/lyra-element.js';
|
|
10
|
+
import { getFileTypeMetadata } from './file-type-metadata.js';
|
|
11
|
+
import { styles } from './file-icon.styles.js';
|
|
12
|
+
const ICON_LABELS = {
|
|
13
|
+
file: 'fileTypeFile',
|
|
14
|
+
pdf: 'fileTypePdf',
|
|
15
|
+
word: 'fileTypeWord',
|
|
16
|
+
spreadsheet: 'fileTypeSpreadsheet',
|
|
17
|
+
presentation: 'fileTypePresentation',
|
|
18
|
+
text: 'fileTypeText',
|
|
19
|
+
code: 'fileTypeCode',
|
|
20
|
+
archive: 'fileTypeArchive',
|
|
21
|
+
image: 'fileTypeImage',
|
|
22
|
+
audio: 'fileTypeAudio',
|
|
23
|
+
video: 'fileTypeVideo',
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Displays a localized, tokenized file-type badge from a MIME type.
|
|
27
|
+
*
|
|
28
|
+
* @customElement lyra-file-icon
|
|
29
|
+
* @csspart base - The outer presentation wrapper.
|
|
30
|
+
* @csspart icon - The format badge.
|
|
31
|
+
* @csspart label - The localized format label in `variant="label"` mode.
|
|
32
|
+
*/
|
|
33
|
+
export class LyraFileIcon extends LyraElement {
|
|
34
|
+
constructor() {
|
|
35
|
+
super(...arguments);
|
|
36
|
+
/** MIME type used to resolve metadata. */
|
|
37
|
+
this.mimeType = '';
|
|
38
|
+
/** Optional filename used for fallback detection with an empty or generic MIME type. */
|
|
39
|
+
this.name = '';
|
|
40
|
+
/** Whether the badge is decorative and hidden from assistive technology. */
|
|
41
|
+
this.decorative = false;
|
|
42
|
+
/** Shows only the icon or the icon together with its localized label. */
|
|
43
|
+
this.variant = 'icon';
|
|
44
|
+
/** Optional visible/accessibility label override. */
|
|
45
|
+
this.label = '';
|
|
46
|
+
}
|
|
47
|
+
static { this.styles = [LyraElement.styles, styles]; }
|
|
48
|
+
render() {
|
|
49
|
+
const metadata = getFileTypeMetadata(this.mimeType, this.name);
|
|
50
|
+
const localizedLabel = this.label || this.localize(ICON_LABELS[metadata.icon]);
|
|
51
|
+
return html `
|
|
52
|
+
<span part="base" role=${this.decorative ? 'presentation' : 'img'} aria-label=${this.decorative ? nothing : localizedLabel}>
|
|
53
|
+
<span part="icon" aria-hidden="true">${this.localize(ICON_LABELS[metadata.icon])}</span>
|
|
54
|
+
${this.variant === 'label' ? html `<span part="label">${localizedLabel}</span>` : nothing}
|
|
55
|
+
</span>
|
|
56
|
+
`;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
__decorate([
|
|
60
|
+
property({ attribute: 'mime-type' })
|
|
61
|
+
], LyraFileIcon.prototype, "mimeType", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
property()
|
|
64
|
+
], LyraFileIcon.prototype, "name", void 0);
|
|
65
|
+
__decorate([
|
|
66
|
+
property({ type: Boolean, reflect: true })
|
|
67
|
+
], LyraFileIcon.prototype, "decorative", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
property({ reflect: true })
|
|
70
|
+
], LyraFileIcon.prototype, "variant", void 0);
|
|
71
|
+
__decorate([
|
|
72
|
+
property()
|
|
73
|
+
], LyraFileIcon.prototype, "label", void 0);
|
|
74
|
+
//# sourceMappingURL=file-icon.class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.class.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.class.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,OAAO,EAAuB,MAAM,KAAK,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAyB,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAE/C,MAAM,WAAW,GAA6C;IAC5D,IAAI,EAAE,cAAc;IACpB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,cAAc;IACpB,WAAW,EAAE,qBAAqB;IAClC,YAAY,EAAE,sBAAsB;IACpC,IAAI,EAAE,cAAc;IACpB,IAAI,EAAE,cAAc;IACpB,OAAO,EAAE,iBAAiB;IAC1B,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;IACtB,KAAK,EAAE,eAAe;CACvB,CAAC;AAIF;;;;;;;GAOG;AACH,MAAM,OAAO,YAAa,SAAQ,WAAW;IAA7C;;QAGE,0CAA0C;QACJ,aAAQ,GAAG,EAAE,CAAC;QACpD,wFAAwF;QAC5E,SAAI,GAAG,EAAE,CAAC;QACtB,4EAA4E;QAChC,eAAU,GAAG,KAAK,CAAC;QAC/D,yEAAyE;QAC5C,YAAO,GAAwB,MAAM,CAAC;QACnE,qDAAqD;QACzC,UAAK,GAAG,EAAE,CAAC;IAYzB,CAAC;aAvBQ,WAAM,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/B,CAAgC;IAa7C,MAAM;QACJ,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;QAC/E,OAAO,IAAI,CAAA;+BACgB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,KAAK,eAAe,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc;+CACjF,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;UAC9E,IAAI,CAAC,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA,sBAAsB,cAAc,SAAS,CAAC,CAAC,CAAC,OAAO;;KAE3F,CAAC;IACJ,CAAC;CACF;AApBuC;IAArC,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;8CAAe;AAExC;IAAX,QAAQ,EAAE;0CAAW;AAEsB;IAA3C,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;gDAAoB;AAElC;IAA5B,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;6CAAuC;AAEvD;IAAX,QAAQ,EAAE;2CAAY"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './file-icon.class.js';
|
|
2
|
+
export * from './file-type-metadata.js';
|
|
3
|
+
import { LyraFileIcon } from './file-icon.class.js';
|
|
4
|
+
import { defineElement } from '../../internal/prefix.js';
|
|
5
|
+
defineElement('file-icon', LyraFileIcon);
|
|
6
|
+
//# sourceMappingURL=file-icon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAEzD,aAAa,CAAC,WAAW,EAAE,YAAY,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.styles.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAoBlB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host { display: inline-flex; vertical-align: middle; }
|
|
4
|
+
[part='base'] { display: inline-flex; align-items: center; gap: var(--lyra-space-xs); min-inline-size: 0; }
|
|
5
|
+
[part='icon'] {
|
|
6
|
+
display: inline-flex;
|
|
7
|
+
align-items: center;
|
|
8
|
+
justify-content: center;
|
|
9
|
+
inline-size: var(--lyra-file-icon-size, var(--lyra-size-2rem));
|
|
10
|
+
block-size: var(--lyra-file-icon-size, var(--lyra-size-2rem));
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
border: var(--lyra-border-width-thin) solid var(--lyra-color-border);
|
|
13
|
+
border-radius: var(--lyra-radius);
|
|
14
|
+
background: var(--lyra-color-brand-quiet);
|
|
15
|
+
color: var(--lyra-color-brand);
|
|
16
|
+
font-size: var(--lyra-font-size-xs);
|
|
17
|
+
font-weight: var(--lyra-font-weight-bold);
|
|
18
|
+
line-height: var(--lyra-line-height-none);
|
|
19
|
+
text-transform: uppercase;
|
|
20
|
+
}
|
|
21
|
+
[part='label'] { min-inline-size: 0; color: var(--lyra-color-text); }
|
|
22
|
+
`;
|
|
23
|
+
//# sourceMappingURL=file-icon.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-icon.styles.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-icon.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;CAoBxB,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type LyraFileTypeIcon = 'file' | 'pdf' | 'word' | 'spreadsheet' | 'presentation' | 'text' | 'code' | 'archive' | 'image' | 'audio' | 'video';
|
|
2
|
+
export type LyraFileTypeCategory = 'document' | 'spreadsheet' | 'presentation' | 'image' | 'audio' | 'video' | 'archive' | 'code' | 'generic';
|
|
3
|
+
export type LyraFileTypeMetadata = {
|
|
4
|
+
label: string;
|
|
5
|
+
description?: string;
|
|
6
|
+
icon: LyraFileTypeIcon;
|
|
7
|
+
category: LyraFileTypeCategory;
|
|
8
|
+
extensions?: readonly string[];
|
|
9
|
+
};
|
|
10
|
+
/** Adds or replaces a custom MIME mapping used by future metadata lookups. */
|
|
11
|
+
export declare function registerFileTypeMetadata(mimeTypes: string | readonly string[], metadata: LyraFileTypeMetadata): void;
|
|
12
|
+
/** Returns presentation metadata for a MIME type, with a safe generic fallback. */
|
|
13
|
+
export declare function getFileTypeMetadata(mimeType: string, fileName?: string): LyraFileTypeMetadata;
|
|
14
|
+
//# sourceMappingURL=file-type-metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-type-metadata.d.ts","sourceRoot":"","sources":["../../../src/components/file-icon/file-type-metadata.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,gBAAgB,GACxB,MAAM,GACN,KAAK,GACL,MAAM,GACN,aAAa,GACb,cAAc,GACd,MAAM,GACN,MAAM,GACN,SAAS,GACT,OAAO,GACP,OAAO,GACP,OAAO,CAAC;AAEZ,MAAM,MAAM,oBAAoB,GAC5B,UAAU,GACV,aAAa,GACb,cAAc,GACd,OAAO,GACP,OAAO,GACP,OAAO,GACP,SAAS,GACT,MAAM,GACN,SAAS,CAAC;AAEd,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAChC,CAAC;AA2DF,8EAA8E;AAC9E,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,EACrC,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAaN;AAED,mFAAmF;AACnF,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,SAAK,GAAG,oBAAoB,CAUzF"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const generic = { label: 'File', icon: 'file', category: 'generic' };
|
|
2
|
+
const catalog = {
|
|
3
|
+
'application/pdf': { label: 'PDF', icon: 'pdf', category: 'document', extensions: ['.pdf'] },
|
|
4
|
+
'application/vnd.openxmlformats-officedocument.wordprocessingml.document': { label: 'Word document', icon: 'word', category: 'document', extensions: ['.docx'] },
|
|
5
|
+
'application/msword': { label: 'Word document', icon: 'word', category: 'document', extensions: ['.doc'] },
|
|
6
|
+
'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': { label: 'Excel spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.xlsx'] },
|
|
7
|
+
'application/vnd.ms-excel': { label: 'Excel spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.xls'] },
|
|
8
|
+
'application/vnd.openxmlformats-officedocument.presentationml.presentation': { label: 'PowerPoint presentation', icon: 'presentation', category: 'presentation', extensions: ['.pptx'] },
|
|
9
|
+
'application/vnd.ms-powerpoint': { label: 'PowerPoint presentation', icon: 'presentation', category: 'presentation', extensions: ['.ppt'] },
|
|
10
|
+
'application/vnd.oasis.opendocument.text': { label: 'OpenDocument text', icon: 'word', category: 'document', extensions: ['.odt'] },
|
|
11
|
+
'application/vnd.oasis.opendocument.spreadsheet': { label: 'OpenDocument spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.ods'] },
|
|
12
|
+
'application/vnd.oasis.opendocument.presentation': { label: 'OpenDocument presentation', icon: 'presentation', category: 'presentation', extensions: ['.odp'] },
|
|
13
|
+
'application/rtf': { label: 'Rich text document', icon: 'word', category: 'document', extensions: ['.rtf'] },
|
|
14
|
+
'application/epub+zip': { label: 'EPUB ebook', icon: 'word', category: 'document', extensions: ['.epub'] },
|
|
15
|
+
'application/x-mobipocket-ebook': { label: 'MOBI ebook', icon: 'word', category: 'document', extensions: ['.mobi'] },
|
|
16
|
+
'text/plain': { label: 'Plain text', icon: 'text', category: 'document', extensions: ['.txt'] },
|
|
17
|
+
'text/csv': { label: 'CSV spreadsheet', icon: 'spreadsheet', category: 'spreadsheet', extensions: ['.csv'] },
|
|
18
|
+
'text/markdown': { label: 'Markdown', icon: 'code', category: 'code', extensions: ['.md', '.markdown'] },
|
|
19
|
+
'text/html': { label: 'HTML document', icon: 'code', category: 'code', extensions: ['.html', '.htm'] },
|
|
20
|
+
'text/xml': { label: 'XML document', icon: 'code', category: 'code', extensions: ['.xml'] },
|
|
21
|
+
'application/xml': { label: 'XML document', icon: 'code', category: 'code', extensions: ['.xml'] },
|
|
22
|
+
'application/json': { label: 'JSON data', icon: 'code', category: 'code', extensions: ['.json'] },
|
|
23
|
+
'application/yaml': { label: 'YAML data', icon: 'code', category: 'code', extensions: ['.yaml', '.yml'] },
|
|
24
|
+
'text/yaml': { label: 'YAML data', icon: 'code', category: 'code', extensions: ['.yaml', '.yml'] },
|
|
25
|
+
'application/zip': { label: 'ZIP archive', icon: 'archive', category: 'archive', extensions: ['.zip'] },
|
|
26
|
+
'application/x-zip-compressed': { label: 'ZIP archive', icon: 'archive', category: 'archive', extensions: ['.zip'] },
|
|
27
|
+
'application/gzip': { label: 'GZip archive', icon: 'archive', category: 'archive', extensions: ['.gz', '.gzip'] },
|
|
28
|
+
'application/x-gzip': { label: 'GZip archive', icon: 'archive', category: 'archive', extensions: ['.gz', '.gzip'] },
|
|
29
|
+
'application/x-tar': { label: 'TAR archive', icon: 'archive', category: 'archive', extensions: ['.tar'] },
|
|
30
|
+
'application/x-7z-compressed': { label: '7-Zip archive', icon: 'archive', category: 'archive', extensions: ['.7z'] },
|
|
31
|
+
'application/vnd.rar': { label: 'RAR archive', icon: 'archive', category: 'archive', extensions: ['.rar'] },
|
|
32
|
+
'image/jpeg': { label: 'JPEG image', icon: 'image', category: 'image', extensions: ['.jpg', '.jpeg'] },
|
|
33
|
+
'image/png': { label: 'PNG image', icon: 'image', category: 'image', extensions: ['.png'] },
|
|
34
|
+
'image/gif': { label: 'GIF image', icon: 'image', category: 'image', extensions: ['.gif'] },
|
|
35
|
+
'image/webp': { label: 'WebP image', icon: 'image', category: 'image', extensions: ['.webp'] },
|
|
36
|
+
'image/svg+xml': { label: 'SVG image', icon: 'image', category: 'image', extensions: ['.svg'] },
|
|
37
|
+
'image/tiff': { label: 'TIFF image', icon: 'image', category: 'image', extensions: ['.tif', '.tiff'] },
|
|
38
|
+
'image/bmp': { label: 'BMP image', icon: 'image', category: 'image', extensions: ['.bmp'] },
|
|
39
|
+
'image/heic': { label: 'HEIC image', icon: 'image', category: 'image', extensions: ['.heic'] },
|
|
40
|
+
'audio/mpeg': { label: 'MPEG audio', icon: 'audio', category: 'audio', extensions: ['.mp3', '.mpeg'] },
|
|
41
|
+
'audio/mp3': { label: 'MP3 audio', icon: 'audio', category: 'audio', extensions: ['.mp3'] },
|
|
42
|
+
'audio/wav': { label: 'WAV audio', icon: 'audio', category: 'audio', extensions: ['.wav'] },
|
|
43
|
+
'audio/x-wav': { label: 'WAV audio', icon: 'audio', category: 'audio', extensions: ['.wav'] },
|
|
44
|
+
'video/mp4': { label: 'MP4 video', icon: 'video', category: 'video', extensions: ['.mp4'] },
|
|
45
|
+
'video/webm': { label: 'WebM video', icon: 'video', category: 'video', extensions: ['.webm'] },
|
|
46
|
+
};
|
|
47
|
+
const extensionCatalog = new Map();
|
|
48
|
+
for (const metadata of Object.values(catalog)) {
|
|
49
|
+
for (const extension of metadata.extensions ?? [])
|
|
50
|
+
extensionCatalog.set(extension, metadata);
|
|
51
|
+
}
|
|
52
|
+
function normalizeMimeType(value) {
|
|
53
|
+
return value.trim().toLowerCase().split(';', 1)[0];
|
|
54
|
+
}
|
|
55
|
+
/** Adds or replaces a custom MIME mapping used by future metadata lookups. */
|
|
56
|
+
export function registerFileTypeMetadata(mimeTypes, metadata) {
|
|
57
|
+
for (const mimeType of typeof mimeTypes === 'string' ? [mimeTypes] : mimeTypes) {
|
|
58
|
+
catalog[normalizeMimeType(mimeType)] = metadata;
|
|
59
|
+
}
|
|
60
|
+
for (const extension of metadata.extensions ?? []) {
|
|
61
|
+
const normalizedExtension = extension.trim().toLowerCase();
|
|
62
|
+
if (normalizedExtension) {
|
|
63
|
+
extensionCatalog.set(normalizedExtension.startsWith('.') ? normalizedExtension : `.${normalizedExtension}`, metadata);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
/** Returns presentation metadata for a MIME type, with a safe generic fallback. */
|
|
68
|
+
export function getFileTypeMetadata(mimeType, fileName = '') {
|
|
69
|
+
const normalized = normalizeMimeType(mimeType);
|
|
70
|
+
const explicit = normalized && normalized !== 'application/octet-stream' ? catalog[normalized] : undefined;
|
|
71
|
+
if (explicit)
|
|
72
|
+
return { ...explicit };
|
|
73
|
+
if (!normalized || normalized === 'application/octet-stream') {
|
|
74
|
+
const match = /(?:^|\.)((?:[a-z0-9]+))$/i.exec(fileName.trim().toLowerCase());
|
|
75
|
+
const byExtension = match ? extensionCatalog.get(`.${match[1]}`) : undefined;
|
|
76
|
+
if (byExtension)
|
|
77
|
+
return { ...byExtension };
|
|
78
|
+
}
|
|
79
|
+
return { ...generic };
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=file-type-metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-type-metadata.js","sourceRoot":"","sources":["../../../src/components/file-icon/file-type-metadata.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { OptionalPeerApi } from '../../internal/optional-peer-types.js';
|
|
2
|
+
export declare function loadHtmlSanitizerDeps(importDompurify?: () => Promise<{
|
|
3
|
+
default: OptionalPeerApi;
|
|
4
|
+
}>): Promise<OptionalPeerApi | null>;
|
|
5
|
+
export declare function loadHtmlSanitizer(): Promise<OptionalPeerApi | null>;
|
|
6
|
+
export declare function clearHtmlSanitizerCache(): void;
|
|
7
|
+
//# sourceMappingURL=dompurify-loader.d.ts.map
|