1 | import {
|
2 | responsive_media_styles_default
|
3 | } from "./chunk.3LZDVMBK.js";
|
4 | import {
|
5 | o
|
6 | } from "./chunk.IAELDRGJ.js";
|
7 | import {
|
8 | e,
|
9 | n
|
10 | } from "./chunk.VKNZYXSO.js";
|
11 | import {
|
12 | $,
|
13 | s
|
14 | } from "./chunk.WWAD5WF4.js";
|
15 | import {
|
16 | __decorateClass
|
17 | } from "./chunk.K2NRSETB.js";
|
18 |
|
19 |
|
20 | var 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 | };
|
45 | SlResponsiveMedia.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);
|
52 | SlResponsiveMedia = __decorateClass([
|
53 | n("sl-responsive-media")
|
54 | ], SlResponsiveMedia);
|
55 |
|
56 | export {
|
57 | SlResponsiveMedia
|
58 | };
|