@postnord/web-components
Version:
PostNord Web Components
6 lines • 1.44 kB
JavaScript
/*!
* Built with Stencil
* By PostNord.
*/
import{r as t,g as i,h as s,a as e}from"./p-43660913.js";const n="pn-illustration{display:inline-block}pn-illustration[data-fill]{display:block}pn-illustration>svg{width:var(--pn-width);height:var(--pn-height);display:block}";const h=n;const r=class{constructor(i){t(this,i);this.illustration=undefined;this.width=undefined;this.height=undefined;this.fill=false}get hostElement(){return i(this)}handleFill(){if(this.fill){this.width="100%";this.height="100%"}}componentWillRender(){this.handleFill();if(this.width||this.height)return this.setSizes();this.getSizeFromSvg()}componentDidRender(){this.hostElement.querySelector("svg")?.setAttribute("width",this.width);this.hostElement.querySelector("svg")?.setAttribute("height",this.height)}getSizeFromSvg(){const t=this.illustration?.match(/<svg[^>]*?viewBox=(["\'])?((?:.(?!\1|>))*.?)\1?/)?.[2];if(!t)return;const[,,i="",s=""]=t?.split(" ")||[];if(!i||!s)return;this.width=`${Number(i)}px`;this.height=`${Number(s)}px`;this.setSizes()}setSizes(){this.hostElement.style.setProperty("--pn-width",this.width);this.hostElement.style.setProperty("--pn-height",this.height)}render(){return s(e,{key:"c1677d05f7d693f70e591659a89510f6f01062fe",role:"presentation",innerHTML:this.illustration,"data-fill":this.fill})}static get watchers(){return{fill:["handleFill"]}}};r.style=h;export{r as pn_illustration};
//# sourceMappingURL=p-8220b093.entry.js.map