1 class WordFinder extends WordQuiz {
3 let aliases = name.split('/');
4 let html = aliases.shift();
5 html = html.replace(/\((.+)\)/, '<small>$1</small>');
6 for (let alias of aliases) {
7 html += ` <small>(${alias})</small>`;
13 rows.forEach(word => {
15 const worditem = put(catitem, 'li');
16 const figitem = put(worditem, 'figure');
18 put(figitem, 'img[src=$]', word.thumb());
21 put(figitem, 'figcaption', {
22 innerHTML: this.namehtml(word.title),
25 if (this.preset.debug) {
26 put(figitem, '[title=$]', `id ${word.id} level ${word.level}`);
28 put(worditem, '.level' + word.level);
29 if (!word.subs.length) {
32 if (word.level <= 1 && word.subs.length >= 4) {
33 put(worditem, '.large');
35 put(worditem, '.parent.expand');
37 put(figitem, '[data-sup=$]', word.subs.length);
38 figitem.onclick = () => {
40 if (expansion = worditem.querySelector('ul')) {
42 put(worditem, '.expand');
45 expansion = put(worditem, 'ul');
46 this.add(expansion, word.subs);
47 put(worditem, '!expand');
51 // delve into subcategory
52 const expansion = put(worditem, 'ul');
53 //expansion.style.display = 'none';
54 this.add(expansion, word.subs);
55 //worditem.onclick = () => expansion.style.display = '';
60 this.preset.level = 3;
61 this.preset.images = false;
62 return super.configure(input);
67 if (this.preset.debug) {
68 put(document.head, 'link', {rel: 'stylesheet', href: '/word/debug.css'});
70 this.form.innerHTML = '';
71 put(this.form, 'p', 'Under construction.');
72 for (let cat of this.data.root()) {
73 this.add(put(this.form, 'ul.gallery'), [cat]);