oswilno/crates/web-assets/assets/elements/oswilno-price.js
2023-08-01 16:29:03 +02:00

21 lines
680 B
JavaScript

customElements.define('oswilno-price', class extends HTMLElement {
constructor() {
super();
this.attachShadow({ mode: 'open' });
}
connectedCallback() {
let shadow = this.shadowRoot;
let price = parseInt(this.getAttribute('price'));
if (isNaN(price)) price = 0;
const multiplier = parseInt(this.getAttribute('multiplier'));
let major = price;
let minor = 0;
if (!isNaN(multiplier)) {
major = Math.floor(price / multiplier);
minor = price % multiplier;
}
const currency = this.getAttribute('currency') || 'PLN';
shadow.innerHTML = `<style>:host{display:block;}</style><div>${major}.${minor >= 10 ? minor : minor + '0'} ${ currency }</div>`;
}
});