55 lines
1.4 KiB
JavaScript
Executable File
55 lines
1.4 KiB
JavaScript
Executable File
class Transaction extends HTMLElement {
|
|
|
|
observables = ['vendor', 'date', 'amount', 'points'];
|
|
|
|
static get observedAttributes() {
|
|
return observables;
|
|
}
|
|
|
|
constructor() {
|
|
super();
|
|
|
|
let template = document.getElementById('transaction');
|
|
let templateContent = template.content;
|
|
|
|
const shadow = this.attachShadow({
|
|
mode: 'open'
|
|
})
|
|
.appendChild(templateContent.cloneNode(true));
|
|
}
|
|
|
|
connectedCallback() {
|
|
|
|
var sr = this.shadowRoot;
|
|
|
|
var transactionComponent = this;
|
|
|
|
console.log('LOADING TRANSACTION DATA');
|
|
|
|
this.observables.forEach(function(id){
|
|
var element = sr.getElementById(id);
|
|
element.innerHTML = transactionComponent.getAttribute(id);
|
|
})
|
|
|
|
|
|
|
|
// eventscomponent.addEventListener(eventid, e => {
|
|
// console.log(e.detail)
|
|
// let id_object = loyalty.parseJwt(loyalty.getCookie('id_token'))
|
|
// attendEvent(id_object.sub, e.detail.eventData)
|
|
// // re-attach this component
|
|
// let container = this.parentElement
|
|
// let content = container.innerHTML
|
|
// container.innerHTML = content
|
|
// });
|
|
}
|
|
}
|
|
|
|
try {
|
|
customElements.define('transaction-element', Transaction);
|
|
} catch (err) {
|
|
const h3 = document.createElement('h3')
|
|
h3.innerHTML = err
|
|
document.body.appendChild(h3)
|
|
}
|