'use strict';
function getAllPropertyNames(obj, props = []) {
if (obj.constructor.name == 'Object') {
return props.length ? props : null;
} else {
return getAllPropertyNames(Object.getPrototypeOf(obj), props.concat(Object.getOwnPropertyNames(obj)));
}
}
function reportError(error) {
let reportingNode = document.getElementById('b-error');
reportingNode.textContent += JSON.stringify(error, getAllPropertyNames(error), 2);
}
class Jot extends HTMLElement {
constructor() {
try {
super();
this._shadow = this.attachShadow({ mode: 'open' });
// this._shadow = this;
this._shadow.innerHTML = `
`;
this._close = this._shadow.querySelector('span');
this._pre = this._shadow.querySelector('pre');
this._ta = this._shadow.querySelector('textarea');
this._div = this._shadow.querySelector('div');
this._div.textContent = 'characters do not get inserted';
this._pre.addEventListener('focus', event => {
let s = window.getSelection();
s.selectAllChildren(event.target);
});
this._close.addEventListener('click', e => {
this.parentElement.removeChild(this);
});
}
catch(e) {
reportError(e);
}
}
connectedCallback() {
try {
this._pre.textContent = `# ${document.title}\n## ${document.URL}\n\n${window.getSelection().toString()}\n`;
}
catch(e) {
reportError(e);
}
}
}
// document.addEventListener('readystatechange', function (event) {
try {
// if (document.readyState == 'complete') {
let reportingNode = document.createElement('pre');
reportingNode.id = 'b-error';
reportingNode.style = 'position: absolute; top: 0; left: 0; background-color: white; color: black';
document.body.appendChild (reportingNode);
if (!customElements.get('my-jot')) {
customElements.define('my-jot', Jot);
// document.body.appendChild(new Jot);
document.body.appendChild(document.createElement('my-jot'));
}
// }
}
catch(e) {
reportError(e);
}
// });