"use strict"; class trtorrent { #element = document.createElement('div'); getElement() { return this.#element; } #hash; #name = '## NAME NOT SET ##'; #element_server = {}; addControl(srv, control) { this.#element_server[srv] = control; this.#element.appendChild(control.getElement()); } getControl(srv) { return this.#element_server[srv]; } #servers = {}; #handler(e) { switch (e.type) { case 'click': if (e.currentTarget.hasAttributeNS('trweb', 'torrentlistfield')) { switch (e.currentTarget.getAttributeNS('trweb', 'torrentlistfield')) { case 'entry': e.currentTarget.classList.toggle('trweb_hide_buttons'); e.stopPropagation(); break; } } break; } } constructor(hash) { this.#hash = hash; // set up DOM structure let element_name = document.createElement('div'); element_name.classList.add('trweb_torrentlistname', 'col'); element_name.setAttributeNS('trweb', 'fieldid', 'displayname'); this.#element.torrent = this; this.#element.classList.add('trweb_torrentlistentry', 'trweb_hide_buttons', 'row'); this.#element.setAttributeNS('trweb', 'torrentlistfield', 'entry'); this.#element.addEventListener('click', this.#handler.bind(this)); this.#element.element_name = element_name; this.#element.appendChild(element_name); } }