28 lines
940 B
TypeScript
28 lines
940 B
TypeScript
import { MediaLayoutConfig } from '../types';
|
|
|
|
/**
|
|
* Update element style from a media configuration.
|
|
* @param element The element to update the style for.
|
|
* @param mediaLayoutConfig The media config object.
|
|
*/
|
|
export const updateElementStyleFromMediaLayoutConfig = (
|
|
element: HTMLElement,
|
|
mediaLayoutConfig?: MediaLayoutConfig,
|
|
) => {
|
|
if (mediaLayoutConfig?.fit !== undefined) {
|
|
element.style.setProperty('--frigate-card-media-layout-fit', mediaLayoutConfig.fit);
|
|
} else {
|
|
element.style.removeProperty('--frigate-card-media-layout-fit');
|
|
}
|
|
for (const dimension of ['x', 'y']) {
|
|
if (mediaLayoutConfig?.position?.[dimension] !== undefined) {
|
|
element.style.setProperty(
|
|
`--frigate-card-media-layout-position-${dimension}`,
|
|
`${mediaLayoutConfig.position[dimension]}%`,
|
|
);
|
|
} else {
|
|
element.style.removeProperty(`--frigate-card-media-layout-position-${dimension}`);
|
|
}
|
|
}
|
|
};
|