UNPKG

1.35 kBJavaScriptView Raw
1import {
2 responsive_media_styles_default
3} from "./chunk.3LZDVMBK.js";
4import {
5 o
6} from "./chunk.IAELDRGJ.js";
7import {
8 e,
9 n
10} from "./chunk.VKNZYXSO.js";
11import {
12 $,
13 s
14} from "./chunk.WWAD5WF4.js";
15import {
16 __decorateClass
17} from "./chunk.K2NRSETB.js";
18
19// src/components/responsive-media/responsive-media.ts
20var SlResponsiveMedia = class extends s {
21 constructor() {
22 super(...arguments);
23 this.aspectRatio = "16:9";
24 this.fit = "cover";
25 }
26 render() {
27 const split = this.aspectRatio.split(":");
28 const x = parseFloat(split[0]);
29 const y = parseFloat(split[1]);
30 const paddingBottom = !isNaN(x) && !isNaN(y) && x > 0 && y > 0 ? `${y / x * 100}%` : "0";
31 return $`
32 <div
33 class=${o({
34 "responsive-media": true,
35 "responsive-media--cover": this.fit === "cover",
36 "responsive-media--contain": this.fit === "contain"
37 })}
38 style="padding-bottom: ${paddingBottom}"
39 >
40 <slot></slot>
41 </div>
42 `;
43 }
44};
45SlResponsiveMedia.styles = responsive_media_styles_default;
46__decorateClass([
47 e({ attribute: "aspect-ratio" })
48], SlResponsiveMedia.prototype, "aspectRatio", 2);
49__decorateClass([
50 e()
51], SlResponsiveMedia.prototype, "fit", 2);
52SlResponsiveMedia = __decorateClass([
53 n("sl-responsive-media")
54], SlResponsiveMedia);
55
56export {
57 SlResponsiveMedia
58};