summaryrefslogtreecommitdiffstats
path: root/history.mjs
diff options
context:
space:
mode:
Diffstat (limited to 'history.mjs')
-rw-r--r--history.mjs46
1 files changed, 46 insertions, 0 deletions
diff --git a/history.mjs b/history.mjs
new file mode 100644
index 0000000..f056ac7
--- /dev/null
+++ b/history.mjs
@@ -0,0 +1,46 @@
+export default class extends HTMLElement {
+ static name = 'x-chords-history'
+ static register() {
+ console.debug('Registering Element', this.name, this);
+ customElements.define(this.name, this);
+ }
+
+ delayMs = 1000;
+ #list
+
+ oldList = [
+ 'GCEGCE',
+ 'EBEGBE'
+ ];
+
+ constructor() {
+ super();
+
+ console.debug('History#constructor', this);
+ this.onClick = e => console.debug('history click', e);
+
+ this.template = this.querySelector('template');
+ this.list = this.querySelector('ol');
+
+ // mess around with custom states
+ this._internals = this.attachInternals();
+ }
+
+ connectedCallback() {
+ console.debug('History#connectedCallback', this);
+ }
+
+ add(fretboard) {
+ console.debug('History#add', this, fretboard);
+ this._internals.states.add('fresh');
+ setTimeout(_ => this._internals.states.delete('fresh'),
+ this.delayMs);
+
+ const item = this.template.content.cloneNode(true);
+ // TODO: i don't think this is how slots are supposed to work,
+ // but maybe they're not really for this at all?
+ item.querySelectorAll('[name="fretboard"]')
+ .forEach(s => s.innerText = fretboard.notes.join(' '));
+ this.list.appendChild(item);
+ }
+}