diff --git a/etc/lime-elements.api.md b/etc/lime-elements.api.md
index 827c8417fb..62c0164c67 100644
--- a/etc/lime-elements.api.md
+++ b/etc/lime-elements.api.md
@@ -1238,6 +1238,7 @@ export type IconSize = 'x-small' | 'small' | 'medium' | 'large';
interface Image_2 {
alt: string;
loading?: 'lazy' | 'eager';
+ referrerpolicy?: ReferrerPolicy;
src: string;
}
export { Image_2 as Image }
diff --git a/src/components/card/card.tsx b/src/components/card/card.tsx
index 18befd5033..5eadbf44cf 100644
--- a/src/components/card/card.tsx
+++ b/src/components/card/card.tsx
@@ -9,6 +9,7 @@ import {
State,
} from '@stencil/core';
import { Image } from '../../global/shared-types/image.types';
+import { ImageTemplate } from '../../util/image.template';
import { Icon, IconName } from '../../global/shared-types/icon.types';
import { isItem } from '../action-bar/is-item';
import { getIconName } from '../icon/get-icon-props';
@@ -243,7 +244,7 @@ export class Card {
return (
-

+
);
}
diff --git a/src/components/chip/chip.tsx b/src/components/chip/chip.tsx
index 6faf753601..046b638d43 100644
--- a/src/components/chip/chip.tsx
+++ b/src/components/chip/chip.tsx
@@ -8,6 +8,7 @@ import {
Prop,
} from '@stencil/core';
import { Icon, IconName } from '../../global/shared-types/icon.types';
+import { ImageTemplate } from '../../util/image.template';
import { Languages } from '../date-picker/date.types';
import { Link } from '../../global/shared-types/link.types';
import { getRel } from '../../util/link-helper';
@@ -295,9 +296,7 @@ export class Chip implements ChipInterface {
}
if (!isEmpty(this.image)) {
- return (
-
- );
+ return ;
}
return (
diff --git a/src/components/file-viewer/file-viewer.tsx b/src/components/file-viewer/file-viewer.tsx
index 10c41cac33..30d73d4525 100644
--- a/src/components/file-viewer/file-viewer.tsx
+++ b/src/components/file-viewer/file-viewer.tsx
@@ -1,6 +1,7 @@
import {
Component,
Element,
+ Fragment,
h,
Prop,
State,
@@ -17,6 +18,7 @@ import { FileType, OfficeViewer } from './file-viewer.types';
import { LimelMenuCustomEvent } from '../../components';
import { Email } from '../email-viewer/email-viewer.types';
import { loadEmail } from '../email-viewer/email-loader';
+import { ImageTemplate } from '../../util/image.template';
/**
* This is a smart component that automatically detects
@@ -236,14 +238,17 @@ export class FileViewer {
};
private renderImage = () => {
- return [
- this.renderButtons(),
-
,
- ];
+ return (
+
+ {this.renderButtons()}
+
+
+ );
};
private renderVideo = () => {
diff --git a/src/components/list-item/list-item.e2e.tsx b/src/components/list-item/list-item.e2e.tsx
index da6976b0e0..1bdc2ab3ea 100644
--- a/src/components/list-item/list-item.e2e.tsx
+++ b/src/components/list-item/list-item.e2e.tsx
@@ -108,5 +108,25 @@ describe('limel-list-item', () => {
const imgEl = root.querySelector('img');
expect(imgEl).not.toBeNull();
+ expect(imgEl?.hasAttribute('referrerpolicy')).toBe(false);
+ });
+
+ it('forwards referrerpolicy to the rendered image when set', async () => {
+ const imgSrc =
+ 'data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==';
+ const { root, waitForChanges } = await render(
+
+ );
+ await waitForChanges();
+
+ const imgEl = root.querySelector('img');
+ expect(imgEl?.getAttribute('referrerpolicy')).toEqual('no-referrer');
});
});
diff --git a/src/components/list-item/list-item.tsx b/src/components/list-item/list-item.tsx
index 8d65582eb8..d43c341198 100644
--- a/src/components/list-item/list-item.tsx
+++ b/src/components/list-item/list-item.tsx
@@ -9,6 +9,7 @@ import { ListSeparator } from '../../global/shared-types/separator.types';
import { CheckboxTemplate } from '../checkbox/checkbox.template';
import translate from '../../global/translations';
import { Languages } from '../date-picker/date.types';
+import { ImageTemplate } from '../../util/image.template';
/**
* This components displays the list item.
@@ -253,7 +254,7 @@ export class ListItemComponent implements ListItem {
return;
}
- return
;
+ return ;
};
private renderActionMenu = (actions: Array