@limetech/lime-elements 39.0.4 → 39.1.1
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/CHANGELOG.md +19 -0
- package/dist/cjs/index-nxo2UO7I.js +20355 -0
- package/dist/cjs/lime-elements.cjs.js +1 -1
- package/dist/cjs/limel-action-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/limel-ai-avatar.cjs.entry.js +1 -1
- package/dist/cjs/limel-breadcrumbs_7.cjs.entry.js +6 -6
- package/dist/cjs/limel-callout.cjs.entry.js +1 -1
- package/dist/cjs/limel-chart.cjs.entry.js +1 -1
- package/dist/cjs/limel-chip_2.cjs.entry.js +1 -1
- package/dist/cjs/limel-code-editor.cjs.entry.js +1 -1
- package/dist/cjs/limel-collapsible-section.cjs.entry.js +1 -1
- package/dist/cjs/limel-drag-handle.cjs.entry.js +1 -1
- package/dist/cjs/limel-email-viewer.cjs.entry.js +351 -0
- package/dist/cjs/limel-file-dropzone_2.cjs.entry.js +2 -2
- package/dist/cjs/limel-file-viewer.cjs.entry.js +4967 -26
- package/dist/cjs/limel-file.cjs.entry.js +2 -2
- package/dist/cjs/limel-flatpickr-adapter.cjs.entry.js +1 -1
- package/dist/cjs/limel-flex-container.cjs.entry.js +1 -1
- package/dist/cjs/limel-form.cjs.entry.js +1 -1
- package/dist/cjs/limel-grid.cjs.entry.js +1 -1
- package/dist/cjs/limel-header.cjs.entry.js +1 -1
- package/dist/cjs/limel-help-content.cjs.entry.js +1 -1
- package/dist/cjs/limel-help.cjs.entry.js +2 -2
- package/dist/cjs/limel-helper-line_2.cjs.entry.js +3 -3
- package/dist/cjs/limel-icon-button.cjs.entry.js +1 -1
- package/dist/cjs/limel-icon.cjs.entry.js +1 -1
- package/dist/cjs/limel-info-tile.cjs.entry.js +2 -2
- package/dist/cjs/limel-linear-progress.cjs.entry.js +1 -1
- package/dist/cjs/limel-list-item.cjs.entry.js +3 -3
- package/dist/cjs/limel-markdown.cjs.entry.js +3 -2
- package/dist/cjs/limel-menu-item-meta.cjs.entry.js +1 -1
- package/dist/cjs/limel-picker.cjs.entry.js +1 -1
- package/dist/cjs/limel-popover_2.cjs.entry.js +2 -2
- package/dist/cjs/limel-portal_3.cjs.entry.js +4 -4
- package/dist/cjs/limel-profile-picture.cjs.entry.js +1 -1
- package/dist/cjs/limel-prosemirror-adapter.cjs.entry.js +15 -14
- package/dist/cjs/limel-radio-button-group.cjs.entry.js +1 -1
- package/dist/cjs/limel-radio-button.cjs.entry.js +2 -2
- package/dist/cjs/limel-select.cjs.entry.js +1 -1
- package/dist/cjs/limel-shortcut.cjs.entry.js +1 -1
- package/dist/cjs/limel-slider.cjs.entry.js +1 -1
- package/dist/cjs/limel-snackbar.cjs.entry.js +4 -4
- package/dist/cjs/limel-split-button.cjs.entry.js +2 -2
- package/dist/cjs/limel-tab-bar.cjs.entry.js +2 -2
- package/dist/cjs/limel-tab-panel.cjs.entry.js +1 -1
- package/dist/cjs/limel-table.cjs.entry.js +4 -4
- package/dist/cjs/limel-text-editor.cjs.entry.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{markdown-parser-_1bsy-5h.js → markdown-parser-B66l_Zvo.js} +20342 -40680
- package/dist/cjs/{translations-BIHr3B9O.js → translations-B0hzD08N.js} +112 -0
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/email-viewer/email-loader.js +206 -0
- package/dist/collection/components/email-viewer/email-viewer.css +293 -0
- package/dist/collection/components/email-viewer/email-viewer.js +294 -0
- package/dist/collection/components/email-viewer/email-viewer.types.js +1 -0
- package/dist/collection/components/email-viewer/remote-images.js +50 -0
- package/dist/collection/components/email-viewer/sanitize-email-html.js +245 -0
- package/dist/collection/components/email-viewer/split-email-address-list.js +106 -0
- package/dist/collection/components/file/file.js +1 -1
- package/dist/collection/components/file-dropzone/file-dropzone.js +1 -1
- package/dist/collection/components/file-input/file-input.js +1 -1
- package/dist/collection/components/file-viewer/extension-mapping.js +1 -0
- package/dist/collection/components/file-viewer/file-viewer.js +54 -7
- package/dist/collection/components/flex-container/flex-container.js +1 -1
- package/dist/collection/components/form/form.js +1 -1
- package/dist/collection/components/grid/grid.js +1 -1
- package/dist/collection/components/header/header.js +1 -1
- package/dist/collection/components/help/help-content.js +1 -1
- package/dist/collection/components/help/help.js +2 -2
- package/dist/collection/components/helper-line/helper-line.js +2 -2
- package/dist/collection/components/icon/icon.js +1 -1
- package/dist/collection/components/icon-button/icon-button.js +1 -1
- package/dist/collection/components/info-tile/info-tile.js +2 -2
- package/dist/collection/components/input-field/input-field.js +1 -1
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/list-item/list-item.js +2 -2
- package/dist/collection/components/list-item/menu-item-meta/menu-item-meta.js +1 -1
- package/dist/collection/components/markdown/markdown.js +1 -1
- package/dist/collection/components/menu/menu.js +1 -1
- package/dist/collection/components/menu-list/menu-list.js +1 -1
- package/dist/collection/components/menu-surface/menu-surface.js +1 -1
- package/dist/collection/components/notched-outline/notched-outline.js +1 -1
- package/dist/collection/components/picker/picker.js +1 -1
- package/dist/collection/components/popover/popover.js +1 -1
- package/dist/collection/components/popover-surface/popover-surface.js +1 -1
- package/dist/collection/components/portal/portal.js +1 -1
- package/dist/collection/components/radio-button-group/radio-button-group.js +1 -1
- package/dist/collection/components/radio-button-group/radio-button.js +2 -2
- package/dist/collection/components/select/select.js +1 -1
- package/dist/collection/components/shortcut/shortcut.js +1 -1
- package/dist/collection/components/slider/slider.js +1 -1
- package/dist/collection/components/snackbar/snackbar.js +3 -3
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-button/split-button.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-panel/tab-panel.js +1 -1
- package/dist/collection/components/table/table.js +3 -3
- package/dist/collection/components/text-editor/link-menu/editor-link-menu.js +3 -3
- package/dist/collection/components/text-editor/prosemirror-adapter/prosemirror-adapter.js +1 -1
- package/dist/collection/components/text-editor/text-editor.js +1 -1
- package/dist/collection/components/tooltip/tooltip-content.js +1 -1
- package/dist/collection/components/tooltip/tooltip.js +2 -2
- package/dist/collection/interface.js +1 -0
- package/dist/collection/translations/da.js +14 -0
- package/dist/collection/translations/de.js +14 -0
- package/dist/collection/translations/en.js +14 -0
- package/dist/collection/translations/fi.js +14 -0
- package/dist/collection/translations/fr.js +14 -0
- package/dist/collection/translations/nl.js +14 -0
- package/dist/collection/translations/no.js +14 -0
- package/dist/collection/translations/sv.js +14 -0
- package/dist/collection/util/format-bytes.js +38 -0
- package/dist/esm/{file-metadata-D5joHaqk.js → file-metadata-BwF9vTXN.js} +1 -1
- package/dist/esm/{files-CkgibGPZ.js → files-P324wLau.js} +1 -1
- package/dist/esm/{get-icon-props-COzG_Mhw.js → get-icon-props-CgNJbSP4.js} +1 -1
- package/dist/esm/index-CJ0GYrWG.js +20341 -0
- package/dist/esm/lime-elements.js +1 -1
- package/dist/esm/limel-action-bar-item_2.entry.js +1 -1
- package/dist/esm/limel-action-bar_2.entry.js +4 -4
- package/dist/esm/limel-ai-avatar.entry.js +1 -1
- package/dist/esm/limel-breadcrumbs_7.entry.js +7 -7
- package/dist/esm/limel-button.entry.js +1 -1
- package/dist/esm/limel-callout.entry.js +1 -1
- package/dist/esm/limel-card.entry.js +1 -1
- package/dist/esm/limel-chart.entry.js +1 -1
- package/dist/esm/limel-chip_2.entry.js +2 -2
- package/dist/esm/limel-code-editor.entry.js +1 -1
- package/dist/esm/limel-collapsible-section.entry.js +2 -2
- package/dist/esm/limel-drag-handle.entry.js +1 -1
- package/dist/esm/limel-dynamic-label.entry.js +1 -1
- package/dist/esm/limel-email-viewer.entry.js +349 -0
- package/dist/esm/limel-file-dropzone_2.entry.js +5 -5
- package/dist/esm/limel-file-viewer.entry.js +4948 -7
- package/dist/esm/limel-file.entry.js +4 -4
- package/dist/esm/limel-flatpickr-adapter.entry.js +1 -1
- package/dist/esm/limel-flex-container.entry.js +1 -1
- package/dist/esm/limel-form.entry.js +1 -1
- package/dist/esm/limel-grid.entry.js +1 -1
- package/dist/esm/limel-header.entry.js +2 -2
- package/dist/esm/limel-help-content.entry.js +1 -1
- package/dist/esm/limel-help.entry.js +2 -2
- package/dist/esm/limel-helper-line_2.entry.js +3 -3
- package/dist/esm/limel-icon-button.entry.js +2 -2
- package/dist/esm/limel-icon.entry.js +1 -1
- package/dist/esm/limel-info-tile.entry.js +2 -2
- package/dist/esm/limel-linear-progress.entry.js +1 -1
- package/dist/esm/limel-list-item.entry.js +4 -4
- package/dist/esm/limel-markdown.entry.js +3 -2
- package/dist/esm/limel-menu-item-meta.entry.js +1 -1
- package/dist/esm/limel-picker.entry.js +2 -2
- package/dist/esm/limel-popover_2.entry.js +2 -2
- package/dist/esm/limel-portal_3.entry.js +4 -4
- package/dist/esm/limel-profile-picture.entry.js +4 -4
- package/dist/esm/limel-progress-flow-item.entry.js +1 -1
- package/dist/esm/limel-progress-flow.entry.js +1 -1
- package/dist/esm/limel-prosemirror-adapter.entry.js +7 -6
- package/dist/esm/limel-radio-button-group.entry.js +1 -1
- package/dist/esm/limel-radio-button.entry.js +2 -2
- package/dist/esm/limel-select.entry.js +2 -2
- package/dist/esm/limel-shortcut.entry.js +1 -1
- package/dist/esm/limel-slider.entry.js +1 -1
- package/dist/esm/limel-snackbar.entry.js +4 -4
- package/dist/esm/limel-split-button.entry.js +2 -2
- package/dist/esm/limel-tab-bar.entry.js +3 -3
- package/dist/esm/limel-tab-panel.entry.js +1 -1
- package/dist/esm/limel-table.entry.js +4 -4
- package/dist/esm/limel-text-editor.entry.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{markdown-parser-DkmQCwAi.js → markdown-parser-DJi1w622.js} +20287 -40624
- package/dist/esm/{translations-6rJPElLH.js → translations-Cdx3I2X8.js} +112 -0
- package/dist/lime-elements/lime-elements.esm.js +1 -1
- package/dist/lime-elements/{p-927622ec.entry.js → p-00fdb26c.entry.js} +1 -1
- package/dist/lime-elements/{p-880b9683.entry.js → p-1244d687.entry.js} +2 -2
- package/dist/lime-elements/p-1d71e9c8.entry.js +1 -0
- package/dist/lime-elements/p-21aef7f4.entry.js +1 -0
- package/dist/lime-elements/{p-68f49d6f.entry.js → p-278356b3.entry.js} +1 -1
- package/dist/lime-elements/{p-a6fae24d.entry.js → p-28dae22e.entry.js} +1 -1
- package/dist/lime-elements/{p-6951136b.entry.js → p-2d31cf0d.entry.js} +1 -1
- package/dist/lime-elements/{p-6e3666e5.entry.js → p-2ef38dac.entry.js} +1 -1
- package/dist/lime-elements/{p-dd36d57b.entry.js → p-2f788e92.entry.js} +7 -7
- package/dist/lime-elements/p-2kcqdtMr.js +1 -0
- package/dist/lime-elements/{p-11f716f5.entry.js → p-3000785f.entry.js} +1 -1
- package/dist/lime-elements/{p-2a5b259e.entry.js → p-3130d348.entry.js} +1 -1
- package/dist/lime-elements/{p-feeae1e4.entry.js → p-38097fa1.entry.js} +1 -1
- package/dist/lime-elements/p-3b299849.entry.js +1 -0
- package/dist/lime-elements/{p-00859fac.entry.js → p-3e6ce4e1.entry.js} +2 -2
- package/dist/lime-elements/{p-23f7956e.entry.js → p-3ec31835.entry.js} +1 -1
- package/dist/lime-elements/{p-52edfe86.entry.js → p-44396c0d.entry.js} +1 -1
- package/dist/lime-elements/{p-ec42a4aa.entry.js → p-494f880b.entry.js} +1 -1
- package/dist/lime-elements/{p-d1fa6da3.entry.js → p-4f6e3057.entry.js} +3 -3
- package/dist/lime-elements/{p-e6d74062.entry.js → p-504ae59f.entry.js} +1 -1
- package/dist/lime-elements/{p-7d5bd4a2.entry.js → p-51565372.entry.js} +1 -1
- package/dist/lime-elements/{p-5ddeb498.entry.js → p-52098c47.entry.js} +1 -1
- package/dist/lime-elements/{p-d2123236.entry.js → p-521a0204.entry.js} +1 -1
- package/dist/lime-elements/{p-38fb97fe.entry.js → p-54d85ae4.entry.js} +1 -1
- package/dist/lime-elements/{p-88f503eb.entry.js → p-59a522ee.entry.js} +1 -1
- package/dist/lime-elements/{p-2c1538f0.entry.js → p-5af72e1b.entry.js} +1 -1
- package/dist/lime-elements/p-64cc5094.entry.js +1 -0
- package/dist/lime-elements/{p-045c6027.entry.js → p-67a2c7f5.entry.js} +1 -1
- package/dist/lime-elements/{p-8db6b7d9.entry.js → p-68b1605f.entry.js} +1 -1
- package/dist/lime-elements/{p-7457bc07.entry.js → p-770981e6.entry.js} +1 -1
- package/dist/lime-elements/{p-9ea564fe.entry.js → p-7ed97446.entry.js} +1 -1
- package/dist/lime-elements/{p-cbb7d624.entry.js → p-8053727c.entry.js} +1 -1
- package/dist/lime-elements/{p-fc3209db.entry.js → p-80f9f2d3.entry.js} +1 -1
- package/dist/lime-elements/{p-34ef71f2.entry.js → p-95fb9ef8.entry.js} +1 -1
- package/dist/lime-elements/{p-6275668f.entry.js → p-961dff13.entry.js} +1 -1
- package/dist/lime-elements/{p-abef62d7.entry.js → p-97952658.entry.js} +1 -1
- package/dist/lime-elements/{p-d6270e4a.entry.js → p-982b9f50.entry.js} +1 -1
- package/dist/lime-elements/p-9c4156c6.entry.js +1 -0
- package/dist/lime-elements/p-BRCcjfVu.js +7 -0
- package/dist/lime-elements/{p-DSjFzQmB.js → p-CWuGCKo1.js} +1 -1
- package/dist/lime-elements/p-Cdx3I2X8.js +1 -0
- package/dist/lime-elements/{p-COzG_Mhw.js → p-CgNJbSP4.js} +1 -1
- package/dist/lime-elements/{p-BQY2kAWs.js → p-DlJXKdhK.js} +1 -1
- package/dist/lime-elements/{p-bbaf35ce.entry.js → p-a9f3f90c.entry.js} +1 -1
- package/dist/lime-elements/{p-c9e934af.entry.js → p-af5f2052.entry.js} +1 -1
- package/dist/lime-elements/{p-f9480c52.entry.js → p-c2478225.entry.js} +1 -1
- package/dist/lime-elements/{p-6aebcf60.entry.js → p-c7f2e189.entry.js} +1 -1
- package/dist/lime-elements/{p-c118eac0.entry.js → p-cce53162.entry.js} +1 -1
- package/dist/lime-elements/{p-6896d5c8.entry.js → p-d4fea438.entry.js} +1 -1
- package/dist/lime-elements/{p-534fdf9b.entry.js → p-df1fa930.entry.js} +1 -1
- package/dist/lime-elements/{p-52bb74b9.entry.js → p-e05ad4f8.entry.js} +1 -1
- package/dist/lime-elements/{p-303d01e5.entry.js → p-e6b0e0a2.entry.js} +1 -1
- package/dist/lime-elements/{p-80d35f8f.entry.js → p-e975cc29.entry.js} +1 -1
- package/dist/lime-elements/{p-9ed578ec.entry.js → p-f532b60f.entry.js} +1 -1
- package/dist/lime-elements/p-f60ea7c6.entry.js +1 -0
- package/dist/lime-elements/{p-4be18a57.entry.js → p-ff845f5c.entry.js} +1 -1
- package/dist/types/components/email-viewer/email-loader.d.ts +19 -0
- package/dist/types/components/email-viewer/email-viewer.d.ts +69 -0
- package/dist/types/components/email-viewer/email-viewer.types.d.ts +70 -0
- package/dist/types/components/email-viewer/remote-images.d.ts +22 -0
- package/dist/types/components/email-viewer/sanitize-email-html.d.ts +14 -0
- package/dist/types/components/email-viewer/split-email-address-list.d.ts +25 -0
- package/dist/types/components/file-viewer/file-viewer.d.ts +9 -0
- package/dist/types/components/file-viewer/file-viewer.types.d.ts +1 -1
- package/dist/types/components.d.ts +116 -0
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/translations/da.d.ts +10 -0
- package/dist/types/translations/de.d.ts +10 -0
- package/dist/types/translations/en.d.ts +10 -0
- package/dist/types/translations/fi.d.ts +10 -0
- package/dist/types/translations/fr.d.ts +10 -0
- package/dist/types/translations/nl.d.ts +10 -0
- package/dist/types/translations/no.d.ts +10 -0
- package/dist/types/translations/sv.d.ts +10 -0
- package/dist/types/util/format-bytes.d.ts +21 -0
- package/package.json +4 -5
- package/dist/lime-elements/p-017dd326.entry.js +0 -1
- package/dist/lime-elements/p-4beeec39.entry.js +0 -1
- package/dist/lime-elements/p-55596d9a.entry.js +0 -1
- package/dist/lime-elements/p-6rJPElLH.js +0 -1
- package/dist/lime-elements/p-Df0HAtSs.js +0 -7
- package/dist/lime-elements/p-d424688d.entry.js +0 -1
- package/dist/lime-elements/p-f395fbe3.entry.js +0 -1
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { EventEmitter } from '../../stencil-public-runtime';
|
|
2
|
+
import { Languages } from '../date-picker/date.types';
|
|
3
|
+
import { Email } from './email-viewer.types';
|
|
4
|
+
/**
|
|
5
|
+
* This is a private component, used to render `.eml` files inside
|
|
6
|
+
* `limel-file-viewer`.
|
|
7
|
+
*
|
|
8
|
+
* :::note
|
|
9
|
+
* If `bodyHtml` is provided, it will be rendered using `innerHTML`.
|
|
10
|
+
* Consumers should pre-sanitize `bodyHtml` before passing it to the component.
|
|
11
|
+
* :::
|
|
12
|
+
*
|
|
13
|
+
* @exampleComponent limel-example-email-viewer-plain-text
|
|
14
|
+
* @exampleComponent limel-example-email-viewer-inline-image
|
|
15
|
+
* @exampleComponent limel-example-email-viewer-remote-image-policy
|
|
16
|
+
*
|
|
17
|
+
* @private
|
|
18
|
+
*/
|
|
19
|
+
export declare class EmailViewer {
|
|
20
|
+
/**
|
|
21
|
+
* The email message to display.
|
|
22
|
+
*
|
|
23
|
+
* If `email.bodyHtml` is set directly, consumers must provide sanitized
|
|
24
|
+
* HTML.
|
|
25
|
+
*/
|
|
26
|
+
email?: Email;
|
|
27
|
+
/**
|
|
28
|
+
* Optional URL to render as a final fallback using an `<object type="text/plain">`.
|
|
29
|
+
*/
|
|
30
|
+
fallbackUrl?: string;
|
|
31
|
+
/**
|
|
32
|
+
* Defines the localization for translations.
|
|
33
|
+
*/
|
|
34
|
+
language: Languages;
|
|
35
|
+
/**
|
|
36
|
+
* Controls whether remote images (http/https) are loaded.
|
|
37
|
+
*
|
|
38
|
+
* If omitted, the component treats this as a per-email setting.
|
|
39
|
+
* Consumers that want to remember the choice (per session/global) can
|
|
40
|
+
* provide this prop and listen for `allowRemoteImagesChange`.
|
|
41
|
+
*/
|
|
42
|
+
allowRemoteImages?: boolean;
|
|
43
|
+
private allowRemoteImagesState;
|
|
44
|
+
/**
|
|
45
|
+
* Emitted when the user requests remote images to be loaded.
|
|
46
|
+
*
|
|
47
|
+
* @internal
|
|
48
|
+
*/
|
|
49
|
+
allowRemoteImagesChange: EventEmitter<boolean>;
|
|
50
|
+
protected resetAllowRemoteImages(newEmail?: Email, oldEmail?: Email): void;
|
|
51
|
+
render(): any;
|
|
52
|
+
private renderHeaders;
|
|
53
|
+
private renderBody;
|
|
54
|
+
private renderBodyHtml;
|
|
55
|
+
private renderBodyText;
|
|
56
|
+
private renderFallbackUrl;
|
|
57
|
+
private renderEmailHeader;
|
|
58
|
+
private getHeaderValues;
|
|
59
|
+
private renderAttachments;
|
|
60
|
+
private renderAttachment;
|
|
61
|
+
private renderSizeBadge;
|
|
62
|
+
private getTranslation;
|
|
63
|
+
private shouldShowRemoteImagesBanner;
|
|
64
|
+
private renderRemoteImageBanner;
|
|
65
|
+
private onEnableRemoteImagesClick;
|
|
66
|
+
private enableRemoteImages;
|
|
67
|
+
private getAllowRemoteImages;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=email-viewer.d.ts.map
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Attachment metadata extracted from an email message.
|
|
3
|
+
*
|
|
4
|
+
* This is intentionally limited to display-friendly metadata; attachment
|
|
5
|
+
* contents are not included.
|
|
6
|
+
*
|
|
7
|
+
* @alpha
|
|
8
|
+
*/
|
|
9
|
+
export interface EmailAttachment {
|
|
10
|
+
/**
|
|
11
|
+
* Suggested filename for the attachment.
|
|
12
|
+
*/
|
|
13
|
+
filename?: string;
|
|
14
|
+
/**
|
|
15
|
+
* MIME type (Content-Type) of the attachment.
|
|
16
|
+
*/
|
|
17
|
+
mimeType?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Attachment size in bytes, when known.
|
|
20
|
+
*/
|
|
21
|
+
size?: number;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* A simplified view-model for a parsed RFC 5322 / MIME email message.
|
|
25
|
+
*
|
|
26
|
+
* @alpha
|
|
27
|
+
*/
|
|
28
|
+
export interface Email {
|
|
29
|
+
/**
|
|
30
|
+
* Subject line of the email.
|
|
31
|
+
*/
|
|
32
|
+
subject?: string;
|
|
33
|
+
/**
|
|
34
|
+
* Sender address, formatted for display.
|
|
35
|
+
*/
|
|
36
|
+
from?: string;
|
|
37
|
+
/**
|
|
38
|
+
* Primary recipient list, formatted for display.
|
|
39
|
+
*/
|
|
40
|
+
to?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Carbon-copy recipient list, formatted for display.
|
|
43
|
+
*/
|
|
44
|
+
cc?: string;
|
|
45
|
+
/**
|
|
46
|
+
* Message date/time as provided by the source email.
|
|
47
|
+
*/
|
|
48
|
+
date?: string;
|
|
49
|
+
/**
|
|
50
|
+
* HTML body content for rendering.
|
|
51
|
+
* Must be sanitized by the caller before assignment when set directly.
|
|
52
|
+
*/
|
|
53
|
+
bodyHtml?: string;
|
|
54
|
+
/**
|
|
55
|
+
* Plain-text body content for rendering.
|
|
56
|
+
*/
|
|
57
|
+
bodyText?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Parsed attachment metadata as {@link EmailAttachment} items.
|
|
60
|
+
*/
|
|
61
|
+
attachments?: EmailAttachment[];
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The header field keys of an {@link Email} that are rendered
|
|
65
|
+
* in the email viewer header section.
|
|
66
|
+
*
|
|
67
|
+
* @alpha
|
|
68
|
+
*/
|
|
69
|
+
export type EmailHeaderType = 'subject' | 'from' | 'to' | 'cc' | 'date';
|
|
70
|
+
//# sourceMappingURL=email-viewer.types.d.ts.map
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checks whether the given HTML contains any images with a `data-remote-src`
|
|
3
|
+
* attribute, indicating they reference external (remote) resources.
|
|
4
|
+
*
|
|
5
|
+
* @param html - The HTML string to inspect.
|
|
6
|
+
*/
|
|
7
|
+
export declare function containsRemoteImages(html: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* If `allowRemoteImages` is `true`, replaces the `src` attribute of every
|
|
10
|
+
* `<img data-remote-src="...">` element with the value of `data-remote-src`
|
|
11
|
+
* (provided it points to an http(s) URL) and removes the data attribute.
|
|
12
|
+
*
|
|
13
|
+
* When `allowRemoteImages` is `false` the HTML is returned unchanged.
|
|
14
|
+
*
|
|
15
|
+
* Returns an HTML fragment that is safe to assign to `innerHTML` on a regular
|
|
16
|
+
* container element (not a full `<html>/<head>/<body>` document string).
|
|
17
|
+
*
|
|
18
|
+
* @param html - The HTML string to process.
|
|
19
|
+
* @param allowRemoteImages - Whether to restore remote image sources.
|
|
20
|
+
*/
|
|
21
|
+
export declare function applyRemoteImagesPolicy(html: string, allowRemoteImages: boolean): string;
|
|
22
|
+
//# sourceMappingURL=remote-images.d.ts.map
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sanitizes email HTML to prevent XSS and other security issues while
|
|
3
|
+
* preserving the original visual appearance (layout, colors, fonts, etc.).
|
|
4
|
+
*
|
|
5
|
+
* This differs from the markdown sanitizer (`sanitizeHTML`) in that:
|
|
6
|
+
* - **All inline CSS is preserved** (no style property filtering).
|
|
7
|
+
* - Dangerous CSS properties like `behavior`, `expression`, `-moz-binding` are removed.
|
|
8
|
+
* - Standard dangerous tags/attributes are blocked (script, event handlers, javascript: URLs).
|
|
9
|
+
*
|
|
10
|
+
* @param html - The HTML string to sanitize (typically an email body).
|
|
11
|
+
* @returns The sanitized HTML string.
|
|
12
|
+
*/
|
|
13
|
+
export declare function sanitizeEmailHTML(html: string): Promise<string>;
|
|
14
|
+
//# sourceMappingURL=sanitize-email-html.d.ts.map
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Splits a comma-separated email address list (e.g. `To:` / `Cc:`) into individual
|
|
3
|
+
* recipient strings.
|
|
4
|
+
*
|
|
5
|
+
* In RFC 5322, address lists are comma-separated. However, commas can also appear
|
|
6
|
+
* inside quoted display names (quoted-string) and must then be ignored as separators.
|
|
7
|
+
* This splitter only treats a comma as a separator when it is outside quoted strings
|
|
8
|
+
* and outside angle-bracketed address parts (`<...>`).
|
|
9
|
+
*
|
|
10
|
+
* Notes:
|
|
11
|
+
* - If a display name contains a comma, it should be quoted or encoded to be
|
|
12
|
+
* unambiguous, e.g. `"Doe, Jane" <jane.doe@example.com>` or
|
|
13
|
+
* `=?UTF-8?Q?Doe,_Jane?= <jane.doe@example.com>`.
|
|
14
|
+
* - Real-world `.eml` files are usually RFC-ish but not always perfectly compliant.
|
|
15
|
+
* Malformed input with unquoted commas in display names may be split incorrectly.
|
|
16
|
+
*
|
|
17
|
+
* @param value - A comma-separated list of recipients.
|
|
18
|
+
* @returns An array of trimmed recipient strings.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* splitEmailAddressList('"Doe, Jane" <jane@example.com>, Team <team@example.com>');
|
|
22
|
+
* // => ['"Doe, Jane" <jane@example.com>', 'Team <team@example.com>']
|
|
23
|
+
*/
|
|
24
|
+
export declare function splitEmailAddressList(value: string): string[];
|
|
25
|
+
//# sourceMappingURL=split-email-address-list.d.ts.map
|
|
@@ -25,6 +25,7 @@ import { OfficeViewer } from './file-viewer.types';
|
|
|
25
25
|
*
|
|
26
26
|
* @exampleComponent limel-example-file-viewer-basic
|
|
27
27
|
* @exampleComponent limel-example-file-viewer-office
|
|
28
|
+
* @exampleComponent limel-example-file-viewer-eml
|
|
28
29
|
* @exampleComponent limel-example-file-viewer-filename
|
|
29
30
|
* @exampleComponent limel-example-file-viewer-inbuilt-actions
|
|
30
31
|
* @exampleComponent limel-example-file-viewer-custom-actions
|
|
@@ -100,7 +101,10 @@ export declare class FileViewer {
|
|
|
100
101
|
*/
|
|
101
102
|
private loading;
|
|
102
103
|
private fileUrl;
|
|
104
|
+
private email?;
|
|
105
|
+
private pdfBlobUrl?;
|
|
103
106
|
constructor();
|
|
107
|
+
disconnectedCallback(): void;
|
|
104
108
|
componentWillLoad(): Promise<void>;
|
|
105
109
|
render(): any;
|
|
106
110
|
protected watchUrl(newUrl: string, oldUrl: string): Promise<void>;
|
|
@@ -110,6 +114,7 @@ export declare class FileViewer {
|
|
|
110
114
|
private renderVideo;
|
|
111
115
|
private renderAudio;
|
|
112
116
|
private renderText;
|
|
117
|
+
private renderEmail;
|
|
113
118
|
private renderOffice;
|
|
114
119
|
private isOfficeFileAccessibleViaURL;
|
|
115
120
|
private getOfficeViewerUrl;
|
|
@@ -120,6 +125,10 @@ export declare class FileViewer {
|
|
|
120
125
|
private renderOpenInNewTabButton;
|
|
121
126
|
private renderActionMenu;
|
|
122
127
|
private createURL;
|
|
128
|
+
private loadPdf;
|
|
129
|
+
private loadEmail;
|
|
130
|
+
private loadDefault;
|
|
131
|
+
private revokePdfBlobUrl;
|
|
123
132
|
private handleToggleFullscreen;
|
|
124
133
|
private emitOnAction;
|
|
125
134
|
private sanitizeUrl;
|
|
@@ -26,6 +26,7 @@ import { CustomColorSwatch, CustomPalette } from "./components/color-picker/colo
|
|
|
26
26
|
import { Config } from "./global/config";
|
|
27
27
|
import { ClosingActions, DialogHeading } from "./components/dialog/dialog.types";
|
|
28
28
|
import { DockItem } from "./components/dock/dock.types";
|
|
29
|
+
import { Email } from "./components/email-viewer/email-viewer.types";
|
|
29
30
|
import { FileInfo } from "./global/shared-types/file.types";
|
|
30
31
|
import { OfficeViewer } from "./components/file-viewer/file-viewer.types";
|
|
31
32
|
import { FlexContainerAlign, FlexContainerDirection, FlexContainerJustify } from "./components/flex-container/flex-container.types";
|
|
@@ -69,6 +70,7 @@ export { CustomColorSwatch, CustomPalette } from "./components/color-picker/colo
|
|
|
69
70
|
export { Config } from "./global/config";
|
|
70
71
|
export { ClosingActions, DialogHeading } from "./components/dialog/dialog.types";
|
|
71
72
|
export { DockItem } from "./components/dock/dock.types";
|
|
73
|
+
export { Email } from "./components/email-viewer/email-viewer.types";
|
|
72
74
|
export { FileInfo } from "./global/shared-types/file.types";
|
|
73
75
|
export { OfficeViewer } from "./components/file-viewer/file-viewer.types";
|
|
74
76
|
export { FlexContainerAlign, FlexContainerDirection, FlexContainerJustify } from "./components/flex-container/flex-container.types";
|
|
@@ -1433,6 +1435,37 @@ export namespace Components {
|
|
|
1433
1435
|
*/
|
|
1434
1436
|
"value": LabelValue;
|
|
1435
1437
|
}
|
|
1438
|
+
/**
|
|
1439
|
+
* This is a private component, used to render `.eml` files inside
|
|
1440
|
+
* `limel-file-viewer`.
|
|
1441
|
+
* :::note
|
|
1442
|
+
* If `bodyHtml` is provided, it will be rendered using `innerHTML`.
|
|
1443
|
+
* Consumers should pre-sanitize `bodyHtml` before passing it to the component.
|
|
1444
|
+
* :::
|
|
1445
|
+
* @exampleComponent limel-example-email-viewer-plain-text
|
|
1446
|
+
* @exampleComponent limel-example-email-viewer-inline-image
|
|
1447
|
+
* @exampleComponent limel-example-email-viewer-remote-image-policy
|
|
1448
|
+
* @private
|
|
1449
|
+
*/
|
|
1450
|
+
interface LimelEmailViewer {
|
|
1451
|
+
/**
|
|
1452
|
+
* Controls whether remote images (http/https) are loaded. If omitted, the component treats this as a per-email setting. Consumers that want to remember the choice (per session/global) can provide this prop and listen for `allowRemoteImagesChange`.
|
|
1453
|
+
*/
|
|
1454
|
+
"allowRemoteImages"?: boolean;
|
|
1455
|
+
/**
|
|
1456
|
+
* The email message to display. If `email.bodyHtml` is set directly, consumers must provide sanitized HTML.
|
|
1457
|
+
*/
|
|
1458
|
+
"email"?: Email;
|
|
1459
|
+
/**
|
|
1460
|
+
* Optional URL to render as a final fallback using an `<object type="text/plain">`.
|
|
1461
|
+
*/
|
|
1462
|
+
"fallbackUrl"?: string;
|
|
1463
|
+
/**
|
|
1464
|
+
* Defines the localization for translations.
|
|
1465
|
+
* @default 'en'
|
|
1466
|
+
*/
|
|
1467
|
+
"language": Languages;
|
|
1468
|
+
}
|
|
1436
1469
|
/**
|
|
1437
1470
|
* This component lets end-users select a *single* file from their device
|
|
1438
1471
|
* storage. Regardless of the user's device or operating system, this component
|
|
@@ -1586,6 +1619,7 @@ export namespace Components {
|
|
|
1586
1619
|
* functionalities.
|
|
1587
1620
|
* @exampleComponent limel-example-file-viewer-basic
|
|
1588
1621
|
* @exampleComponent limel-example-file-viewer-office
|
|
1622
|
+
* @exampleComponent limel-example-file-viewer-eml
|
|
1589
1623
|
* @exampleComponent limel-example-file-viewer-filename
|
|
1590
1624
|
* @exampleComponent limel-example-file-viewer-inbuilt-actions
|
|
1591
1625
|
* @exampleComponent limel-example-file-viewer-custom-actions
|
|
@@ -3787,6 +3821,10 @@ export interface LimelDockButtonCustomEvent<T> extends CustomEvent<T> {
|
|
|
3787
3821
|
detail: T;
|
|
3788
3822
|
target: HTMLLimelDockButtonElement;
|
|
3789
3823
|
}
|
|
3824
|
+
export interface LimelEmailViewerCustomEvent<T> extends CustomEvent<T> {
|
|
3825
|
+
detail: T;
|
|
3826
|
+
target: HTMLLimelEmailViewerElement;
|
|
3827
|
+
}
|
|
3790
3828
|
export interface LimelFileCustomEvent<T> extends CustomEvent<T> {
|
|
3791
3829
|
detail: T;
|
|
3792
3830
|
target: HTMLLimelFileElement;
|
|
@@ -4724,6 +4762,35 @@ declare global {
|
|
|
4724
4762
|
prototype: HTMLLimelDynamicLabelElement;
|
|
4725
4763
|
new (): HTMLLimelDynamicLabelElement;
|
|
4726
4764
|
};
|
|
4765
|
+
interface HTMLLimelEmailViewerElementEventMap {
|
|
4766
|
+
"allowRemoteImagesChange": boolean;
|
|
4767
|
+
}
|
|
4768
|
+
/**
|
|
4769
|
+
* This is a private component, used to render `.eml` files inside
|
|
4770
|
+
* `limel-file-viewer`.
|
|
4771
|
+
* :::note
|
|
4772
|
+
* If `bodyHtml` is provided, it will be rendered using `innerHTML`.
|
|
4773
|
+
* Consumers should pre-sanitize `bodyHtml` before passing it to the component.
|
|
4774
|
+
* :::
|
|
4775
|
+
* @exampleComponent limel-example-email-viewer-plain-text
|
|
4776
|
+
* @exampleComponent limel-example-email-viewer-inline-image
|
|
4777
|
+
* @exampleComponent limel-example-email-viewer-remote-image-policy
|
|
4778
|
+
* @private
|
|
4779
|
+
*/
|
|
4780
|
+
interface HTMLLimelEmailViewerElement extends Components.LimelEmailViewer, HTMLStencilElement {
|
|
4781
|
+
addEventListener<K extends keyof HTMLLimelEmailViewerElementEventMap>(type: K, listener: (this: HTMLLimelEmailViewerElement, ev: LimelEmailViewerCustomEvent<HTMLLimelEmailViewerElementEventMap[K]>) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4782
|
+
addEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4783
|
+
addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
|
|
4784
|
+
addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
|
|
4785
|
+
removeEventListener<K extends keyof HTMLLimelEmailViewerElementEventMap>(type: K, listener: (this: HTMLLimelEmailViewerElement, ev: LimelEmailViewerCustomEvent<HTMLLimelEmailViewerElementEventMap[K]>) => any, options?: boolean | EventListenerOptions): void;
|
|
4786
|
+
removeEventListener<K extends keyof DocumentEventMap>(type: K, listener: (this: Document, ev: DocumentEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4787
|
+
removeEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
|
|
4788
|
+
removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;
|
|
4789
|
+
}
|
|
4790
|
+
var HTMLLimelEmailViewerElement: {
|
|
4791
|
+
prototype: HTMLLimelEmailViewerElement;
|
|
4792
|
+
new (): HTMLLimelEmailViewerElement;
|
|
4793
|
+
};
|
|
4727
4794
|
interface HTMLLimelFileElementEventMap {
|
|
4728
4795
|
"change": FileInfo;
|
|
4729
4796
|
"interact": number | string;
|
|
@@ -4853,6 +4920,7 @@ declare global {
|
|
|
4853
4920
|
* functionalities.
|
|
4854
4921
|
* @exampleComponent limel-example-file-viewer-basic
|
|
4855
4922
|
* @exampleComponent limel-example-file-viewer-office
|
|
4923
|
+
* @exampleComponent limel-example-file-viewer-eml
|
|
4856
4924
|
* @exampleComponent limel-example-file-viewer-filename
|
|
4857
4925
|
* @exampleComponent limel-example-file-viewer-inbuilt-actions
|
|
4858
4926
|
* @exampleComponent limel-example-file-viewer-custom-actions
|
|
@@ -6121,6 +6189,7 @@ declare global {
|
|
|
6121
6189
|
"limel-dock-button": HTMLLimelDockButtonElement;
|
|
6122
6190
|
"limel-drag-handle": HTMLLimelDragHandleElement;
|
|
6123
6191
|
"limel-dynamic-label": HTMLLimelDynamicLabelElement;
|
|
6192
|
+
"limel-email-viewer": HTMLLimelEmailViewerElement;
|
|
6124
6193
|
"limel-file": HTMLLimelFileElement;
|
|
6125
6194
|
"limel-file-dropzone": HTMLLimelFileDropzoneElement;
|
|
6126
6195
|
"limel-file-input": HTMLLimelFileInputElement;
|
|
@@ -7617,6 +7686,37 @@ declare namespace LocalJSX {
|
|
|
7617
7686
|
*/
|
|
7618
7687
|
"value"?: LabelValue;
|
|
7619
7688
|
}
|
|
7689
|
+
/**
|
|
7690
|
+
* This is a private component, used to render `.eml` files inside
|
|
7691
|
+
* `limel-file-viewer`.
|
|
7692
|
+
* :::note
|
|
7693
|
+
* If `bodyHtml` is provided, it will be rendered using `innerHTML`.
|
|
7694
|
+
* Consumers should pre-sanitize `bodyHtml` before passing it to the component.
|
|
7695
|
+
* :::
|
|
7696
|
+
* @exampleComponent limel-example-email-viewer-plain-text
|
|
7697
|
+
* @exampleComponent limel-example-email-viewer-inline-image
|
|
7698
|
+
* @exampleComponent limel-example-email-viewer-remote-image-policy
|
|
7699
|
+
* @private
|
|
7700
|
+
*/
|
|
7701
|
+
interface LimelEmailViewer {
|
|
7702
|
+
/**
|
|
7703
|
+
* Controls whether remote images (http/https) are loaded. If omitted, the component treats this as a per-email setting. Consumers that want to remember the choice (per session/global) can provide this prop and listen for `allowRemoteImagesChange`.
|
|
7704
|
+
*/
|
|
7705
|
+
"allowRemoteImages"?: boolean;
|
|
7706
|
+
/**
|
|
7707
|
+
* The email message to display. If `email.bodyHtml` is set directly, consumers must provide sanitized HTML.
|
|
7708
|
+
*/
|
|
7709
|
+
"email"?: Email;
|
|
7710
|
+
/**
|
|
7711
|
+
* Optional URL to render as a final fallback using an `<object type="text/plain">`.
|
|
7712
|
+
*/
|
|
7713
|
+
"fallbackUrl"?: string;
|
|
7714
|
+
/**
|
|
7715
|
+
* Defines the localization for translations.
|
|
7716
|
+
* @default 'en'
|
|
7717
|
+
*/
|
|
7718
|
+
"language"?: Languages;
|
|
7719
|
+
}
|
|
7620
7720
|
/**
|
|
7621
7721
|
* This component lets end-users select a *single* file from their device
|
|
7622
7722
|
* storage. Regardless of the user's device or operating system, this component
|
|
@@ -7791,6 +7891,7 @@ declare namespace LocalJSX {
|
|
|
7791
7891
|
* functionalities.
|
|
7792
7892
|
* @exampleComponent limel-example-file-viewer-basic
|
|
7793
7893
|
* @exampleComponent limel-example-file-viewer-office
|
|
7894
|
+
* @exampleComponent limel-example-file-viewer-eml
|
|
7794
7895
|
* @exampleComponent limel-example-file-viewer-filename
|
|
7795
7896
|
* @exampleComponent limel-example-file-viewer-inbuilt-actions
|
|
7796
7897
|
* @exampleComponent limel-example-file-viewer-custom-actions
|
|
@@ -10153,6 +10254,7 @@ declare namespace LocalJSX {
|
|
|
10153
10254
|
"limel-dock-button": LimelDockButton;
|
|
10154
10255
|
"limel-drag-handle": LimelDragHandle;
|
|
10155
10256
|
"limel-dynamic-label": LimelDynamicLabel;
|
|
10257
|
+
"limel-email-viewer": LimelEmailViewer;
|
|
10156
10258
|
"limel-file": LimelFile;
|
|
10157
10259
|
"limel-file-dropzone": LimelFileDropzone;
|
|
10158
10260
|
"limel-file-input": LimelFileInput;
|
|
@@ -10681,6 +10783,19 @@ declare module "@stencil/core" {
|
|
|
10681
10783
|
* @exampleComponent limel-example-dynamic-label-readonly-boolean
|
|
10682
10784
|
*/
|
|
10683
10785
|
"limel-dynamic-label": LocalJSX.LimelDynamicLabel & JSXBase.HTMLAttributes<HTMLLimelDynamicLabelElement>;
|
|
10786
|
+
/**
|
|
10787
|
+
* This is a private component, used to render `.eml` files inside
|
|
10788
|
+
* `limel-file-viewer`.
|
|
10789
|
+
* :::note
|
|
10790
|
+
* If `bodyHtml` is provided, it will be rendered using `innerHTML`.
|
|
10791
|
+
* Consumers should pre-sanitize `bodyHtml` before passing it to the component.
|
|
10792
|
+
* :::
|
|
10793
|
+
* @exampleComponent limel-example-email-viewer-plain-text
|
|
10794
|
+
* @exampleComponent limel-example-email-viewer-inline-image
|
|
10795
|
+
* @exampleComponent limel-example-email-viewer-remote-image-policy
|
|
10796
|
+
* @private
|
|
10797
|
+
*/
|
|
10798
|
+
"limel-email-viewer": LocalJSX.LimelEmailViewer & JSXBase.HTMLAttributes<HTMLLimelEmailViewerElement>;
|
|
10684
10799
|
/**
|
|
10685
10800
|
* This component lets end-users select a *single* file from their device
|
|
10686
10801
|
* storage. Regardless of the user's device or operating system, this component
|
|
@@ -10757,6 +10872,7 @@ declare module "@stencil/core" {
|
|
|
10757
10872
|
* functionalities.
|
|
10758
10873
|
* @exampleComponent limel-example-file-viewer-basic
|
|
10759
10874
|
* @exampleComponent limel-example-file-viewer-office
|
|
10875
|
+
* @exampleComponent limel-example-file-viewer-eml
|
|
10760
10876
|
* @exampleComponent limel-example-file-viewer-filename
|
|
10761
10877
|
* @exampleComponent limel-example-file-viewer-inbuilt-actions
|
|
10762
10878
|
* @exampleComponent limel-example-file-viewer-custom-actions
|
|
@@ -11,6 +11,7 @@ export * from './components/date-picker/date.types';
|
|
|
11
11
|
export * from './components/dialog/dialog.types';
|
|
12
12
|
export * from './components/dock/dock.types';
|
|
13
13
|
export * from './components/color-picker/color-picker.types';
|
|
14
|
+
export * from './components/email-viewer/email-viewer.types';
|
|
14
15
|
export * from './components/file-viewer/file-viewer.types';
|
|
15
16
|
export * from './global/shared-types/file.types';
|
|
16
17
|
export * from './components/flex-container/flex-container.types';
|
|
@@ -38,6 +38,16 @@ declare const _default: {
|
|
|
38
38
|
'file-viewer.open-in-fullscreen': string;
|
|
39
39
|
'file-viewer.open-in-new-tab': string;
|
|
40
40
|
'file-viewer.more-actions': string;
|
|
41
|
+
'file-viewer.email.subject': string;
|
|
42
|
+
'file-viewer.email.from': string;
|
|
43
|
+
'file-viewer.email.to': string;
|
|
44
|
+
'file-viewer.email.cc': string;
|
|
45
|
+
'file-viewer.email.date': string;
|
|
46
|
+
'file-viewer.email.attachments': string;
|
|
47
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning': string;
|
|
49
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
50
|
+
'file-viewer.email.remote-images.load': string;
|
|
41
51
|
'editor-menu.bold': string;
|
|
42
52
|
'editor-menu.italic': string;
|
|
43
53
|
'editor-menu.strikethrough': string;
|
|
@@ -38,6 +38,16 @@ declare const _default: {
|
|
|
38
38
|
'file-viewer.open-in-fullscreen': string;
|
|
39
39
|
'file-viewer.open-in-new-tab': string;
|
|
40
40
|
'file-viewer.more-actions': string;
|
|
41
|
+
'file-viewer.email.subject': string;
|
|
42
|
+
'file-viewer.email.from': string;
|
|
43
|
+
'file-viewer.email.to': string;
|
|
44
|
+
'file-viewer.email.cc': string;
|
|
45
|
+
'file-viewer.email.date': string;
|
|
46
|
+
'file-viewer.email.attachments': string;
|
|
47
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning': string;
|
|
49
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
50
|
+
'file-viewer.email.remote-images.load': string;
|
|
41
51
|
'editor-menu.bold': string;
|
|
42
52
|
'editor-menu.italic': string;
|
|
43
53
|
'editor-menu.strikethrough': string;
|
|
@@ -38,6 +38,16 @@ declare const _default: {
|
|
|
38
38
|
'file-viewer.open-in-fullscreen': string;
|
|
39
39
|
'file-viewer.open-in-new-tab': string;
|
|
40
40
|
'file-viewer.more-actions': string;
|
|
41
|
+
'file-viewer.email.subject': string;
|
|
42
|
+
'file-viewer.email.from': string;
|
|
43
|
+
'file-viewer.email.to': string;
|
|
44
|
+
'file-viewer.email.cc': string;
|
|
45
|
+
'file-viewer.email.date': string;
|
|
46
|
+
'file-viewer.email.attachments': string;
|
|
47
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning': string;
|
|
49
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
50
|
+
'file-viewer.email.remote-images.load': string;
|
|
41
51
|
'editor-menu.bold': string;
|
|
42
52
|
'editor-menu.italic': string;
|
|
43
53
|
'editor-menu.strikethrough': string;
|
|
@@ -38,6 +38,16 @@ declare const _default: {
|
|
|
38
38
|
'file-viewer.open-in-fullscreen': string;
|
|
39
39
|
'file-viewer.open-in-new-tab': string;
|
|
40
40
|
'file-viewer.more-actions': string;
|
|
41
|
+
'file-viewer.email.subject': string;
|
|
42
|
+
'file-viewer.email.from': string;
|
|
43
|
+
'file-viewer.email.to': string;
|
|
44
|
+
'file-viewer.email.cc': string;
|
|
45
|
+
'file-viewer.email.date': string;
|
|
46
|
+
'file-viewer.email.attachments': string;
|
|
47
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning': string;
|
|
49
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
50
|
+
'file-viewer.email.remote-images.load': string;
|
|
41
51
|
'editor-menu.bold': string;
|
|
42
52
|
'editor-menu.italic': string;
|
|
43
53
|
'editor-menu.strikethrough': string;
|
|
@@ -38,6 +38,16 @@ declare const _default: {
|
|
|
38
38
|
'file-viewer.open-in-fullscreen': string;
|
|
39
39
|
'file-viewer.open-in-new-tab': string;
|
|
40
40
|
'file-viewer.more-actions': string;
|
|
41
|
+
'file-viewer.email.subject': string;
|
|
42
|
+
'file-viewer.email.from': string;
|
|
43
|
+
'file-viewer.email.to': string;
|
|
44
|
+
'file-viewer.email.cc': string;
|
|
45
|
+
'file-viewer.email.date': string;
|
|
46
|
+
'file-viewer.email.attachments': string;
|
|
47
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning': string;
|
|
49
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
50
|
+
'file-viewer.email.remote-images.load': string;
|
|
41
51
|
'editor-menu.bold': string;
|
|
42
52
|
'editor-menu.italic': string;
|
|
43
53
|
'editor-menu.strikethrough': string;
|
|
@@ -38,6 +38,16 @@ declare const _default: {
|
|
|
38
38
|
'file-viewer.open-in-fullscreen': string;
|
|
39
39
|
'file-viewer.open-in-new-tab': string;
|
|
40
40
|
'file-viewer.more-actions': string;
|
|
41
|
+
'file-viewer.email.subject': string;
|
|
42
|
+
'file-viewer.email.from': string;
|
|
43
|
+
'file-viewer.email.to': string;
|
|
44
|
+
'file-viewer.email.cc': string;
|
|
45
|
+
'file-viewer.email.date': string;
|
|
46
|
+
'file-viewer.email.attachments': string;
|
|
47
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning': string;
|
|
49
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
50
|
+
'file-viewer.email.remote-images.load': string;
|
|
41
51
|
'editor-menu.bold': string;
|
|
42
52
|
'editor-menu.italic': string;
|
|
43
53
|
'editor-menu.strikethrough': string;
|
|
@@ -37,6 +37,16 @@ declare const _default: {
|
|
|
37
37
|
'file-viewer.open-in-fullscreen': string;
|
|
38
38
|
'file-viewer.open-in-new-tab': string;
|
|
39
39
|
'file-viewer.more-actions': string;
|
|
40
|
+
'file-viewer.email.subject': string;
|
|
41
|
+
'file-viewer.email.from': string;
|
|
42
|
+
'file-viewer.email.to': string;
|
|
43
|
+
'file-viewer.email.cc': string;
|
|
44
|
+
'file-viewer.email.date': string;
|
|
45
|
+
'file-viewer.email.attachments': string;
|
|
46
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
47
|
+
'file-viewer.email.remote-images.warning': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
49
|
+
'file-viewer.email.remote-images.load': string;
|
|
40
50
|
'editor-menu.bold': string;
|
|
41
51
|
'editor-menu.italic': string;
|
|
42
52
|
'editor-menu.strikethrough': string;
|
|
@@ -38,6 +38,16 @@ declare const _default: {
|
|
|
38
38
|
'file-viewer.open-in-fullscreen': string;
|
|
39
39
|
'file-viewer.open-in-new-tab': string;
|
|
40
40
|
'file-viewer.more-actions': string;
|
|
41
|
+
'file-viewer.email.subject': string;
|
|
42
|
+
'file-viewer.email.from': string;
|
|
43
|
+
'file-viewer.email.to': string;
|
|
44
|
+
'file-viewer.email.cc': string;
|
|
45
|
+
'file-viewer.email.date': string;
|
|
46
|
+
'file-viewer.email.attachments': string;
|
|
47
|
+
'file-viewer.email.attachment.unnamed': string;
|
|
48
|
+
'file-viewer.email.remote-images.warning': string;
|
|
49
|
+
'file-viewer.email.remote-images.warning.description': string;
|
|
50
|
+
'file-viewer.email.remote-images.load': string;
|
|
41
51
|
'editor-menu.bold': string;
|
|
42
52
|
'editor-menu.italic': string;
|
|
43
53
|
'editor-menu.strikethrough': string;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Format a file size in bytes into a human readable string.
|
|
3
|
+
*
|
|
4
|
+
* Uses base 1024 units (binary prefixes without the "i" designation)
|
|
5
|
+
* and applies adaptive precision: one decimal for values < 10 of the
|
|
6
|
+
* chosen unit, otherwise no decimals.
|
|
7
|
+
*
|
|
8
|
+
* Examples:
|
|
9
|
+
* - 0 => "0 B"
|
|
10
|
+
* - 512 => "512 B"
|
|
11
|
+
* - 1536 => "1.5 KB"
|
|
12
|
+
* - 1048576 => "1 MB"
|
|
13
|
+
* - 5368709120 => "5 GB"
|
|
14
|
+
* - formatBytes(5347737600, 2) => "4.98 GB" (value < 10 so two decimals)
|
|
15
|
+
*
|
|
16
|
+
* @param bytes - the size in bytes
|
|
17
|
+
* @param decimals - max number of decimals for small unit values (default: 1)
|
|
18
|
+
* @returns formatted size string
|
|
19
|
+
*/
|
|
20
|
+
export declare function formatBytes(bytes: number | undefined | null, decimals?: number): string;
|
|
21
|
+
//# sourceMappingURL=format-bytes.d.ts.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@limetech/lime-elements",
|
|
3
|
-
"version": "39.
|
|
3
|
+
"version": "39.1.1",
|
|
4
4
|
"description": "Lime Elements",
|
|
5
5
|
"author": "Lime Technologies",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -70,6 +70,7 @@
|
|
|
70
70
|
"moment": "^2.30.1",
|
|
71
71
|
"number-abbreviate": "^2.0.0",
|
|
72
72
|
"parse-css-color": "^0.2.1",
|
|
73
|
+
"postal-mime": "^2.7.3",
|
|
73
74
|
"prettier": "^3.5.0",
|
|
74
75
|
"prosemirror-example-setup": "^1.2.3",
|
|
75
76
|
"prosemirror-markdown": "^1.13.2",
|
|
@@ -90,6 +91,7 @@
|
|
|
90
91
|
"replace-in-file": "^7.2.0",
|
|
91
92
|
"shelljs": "0.10.0",
|
|
92
93
|
"shx": "^0.4.0",
|
|
94
|
+
"sortablejs": "^1.15.6",
|
|
93
95
|
"style-to-object": "^1.0.9",
|
|
94
96
|
"tabulator-tables": "^6.3.1",
|
|
95
97
|
"typescript": "^4.9.5",
|
|
@@ -117,8 +119,5 @@
|
|
|
117
119
|
"url": "https://github.com/Lundalogik/lime-elements/issues"
|
|
118
120
|
},
|
|
119
121
|
"homepage": "https://github.com/Lundalogik/lime-elements#readme",
|
|
120
|
-
"packageManager": "npm@>=10.9"
|
|
121
|
-
"dependencies": {
|
|
122
|
-
"sortablejs": "^1.15.6"
|
|
123
|
-
}
|
|
122
|
+
"packageManager": "npm@>=10.9"
|
|
124
123
|
}
|