hmgr 0.0.23 → 0.0.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/gui/main.js
CHANGED
|
@@ -819,10 +819,40 @@ function fensterOeffnen() {
|
|
|
819
819
|
// fällt, was ins Ziel kommt, und zeigt je Bundle Beschreibung und Herkunft.
|
|
820
820
|
var dskBundleBoxSichtbar = false;
|
|
821
821
|
var dskBundleText = null;
|
|
822
|
+
// Aufklappbereich je Zeile (E92): zu vor dem Klick, danach sichtbar mit der ungekürzten
|
|
823
|
+
// Beschreibung; die Checkbox bleibt unberührt, der Dialog offen.
|
|
824
|
+
var dskKoerperVorher = null;
|
|
825
|
+
var dskKoerperNachher = null;
|
|
826
|
+
var dskKoerperText = null;
|
|
827
|
+
var dskAufklappZeileAngehakt = null;
|
|
828
|
+
var dskAufklappZeileGesperrt = null;
|
|
829
|
+
var dskAufklappAriaNachher = null;
|
|
830
|
+
var dskDialogOffenNachAufklappen = null;
|
|
831
|
+
var dskAufklappFreiAngehakt = null;
|
|
822
832
|
if (dskKnopf) {
|
|
823
833
|
dskKnopf.click();
|
|
824
834
|
dskMarken = document.querySelector('#dsk-liste .wahlzeile .marken')?.textContent
|
|
825
835
|
?.replace(/\\s+/g, ' ').trim() ?? null;
|
|
836
|
+
var dskZeile = document.querySelector('#dsk-liste .wahlzeile:has(.aufklappknopf)');
|
|
837
|
+
var dskAufklapp = dskZeile?.querySelector('.aufklappknopf');
|
|
838
|
+
var dskKoerper = dskZeile?.querySelector('.wahlkoerper');
|
|
839
|
+
dskKoerperVorher = dskKoerper?.hidden ?? null;
|
|
840
|
+
dskAufklapp?.click();
|
|
841
|
+
dskKoerperNachher = dskKoerper?.hidden ?? null;
|
|
842
|
+
dskAufklappAriaNachher = dskAufklapp?.getAttribute('aria-expanded') ?? null;
|
|
843
|
+
dskKoerperText = dskKoerper?.textContent?.replace(/\\s+/g, ' ').trim() ?? null;
|
|
844
|
+
dskKoerper?.querySelector('p')?.click();
|
|
845
|
+
dskAufklappZeileAngehakt = dskZeile?.querySelector('input')?.checked ?? null;
|
|
846
|
+
dskAufklappZeileGesperrt = dskZeile?.querySelector('input')?.disabled ?? null;
|
|
847
|
+
dskDialogOffenNachAufklappen = document.getElementById('d-skills')?.open ?? null;
|
|
848
|
+
// Die Fixture-Zeile ist gesperrt (Link liegt schon), das beweist nichts über das Label:
|
|
849
|
+
// darum dieselbe Zeile entsperren, zu- und wieder aufklappen und in den Text klicken.
|
|
850
|
+
var dskEingabe = dskZeile?.querySelector('input');
|
|
851
|
+
if (dskEingabe) dskEingabe.disabled = false;
|
|
852
|
+
dskAufklapp?.click();
|
|
853
|
+
dskAufklapp?.click();
|
|
854
|
+
dskKoerper?.querySelector('p')?.click();
|
|
855
|
+
dskAufklappFreiAngehakt = dskEingabe?.checked ?? null;
|
|
826
856
|
dskBundleBoxSichtbar = document.getElementById('dsk-bundlebox')?.hidden === false;
|
|
827
857
|
dskBundleText = document.querySelector('#dsk-bundles .wahlzeile')?.textContent
|
|
828
858
|
?.replace(/\\s+/g, ' ').trim() ?? null;
|
|
@@ -1126,6 +1156,14 @@ function fensterOeffnen() {
|
|
|
1126
1156
|
katalogDetails,
|
|
1127
1157
|
katalogMarkenWarnend,
|
|
1128
1158
|
dskMarken,
|
|
1159
|
+
dskKoerperVorher,
|
|
1160
|
+
dskKoerperNachher,
|
|
1161
|
+
dskKoerperText,
|
|
1162
|
+
dskAufklappZeileAngehakt,
|
|
1163
|
+
dskAufklappZeileGesperrt,
|
|
1164
|
+
dskAufklappAriaNachher,
|
|
1165
|
+
dskDialogOffenNachAufklappen,
|
|
1166
|
+
dskAufklappFreiAngehakt,
|
|
1129
1167
|
dskBundleBoxSichtbar,
|
|
1130
1168
|
dskBundleText,
|
|
1131
1169
|
dzZieleText,
|
|
@@ -2300,6 +2300,53 @@
|
|
|
2300
2300
|
return teile.join(' · ');
|
|
2301
2301
|
}
|
|
2302
2302
|
|
|
2303
|
+
/** Aufklappbereich einer Wahlzeile im Skills-hinzufügen-Dialog (E92): ungekürzte description und
|
|
2304
|
+
die Frontmatter-Angaben aus E55. Der Knopf hängt am Label (absolut oben rechts, `txt` bekommt
|
|
2305
|
+
Platz dafür), der Körper als drittes Kind des Labels, damit er als Grid-Zeile über die volle
|
|
2306
|
+
Breite läuft. Der Zustand ist der Zustand von aria-expanded: er lebt nur, solange die Zeile
|
|
2307
|
+
lebt (je Dialog-Öffnung neu, immer zugeklappt), nicht in SKILL_OFFEN. Das Label schaltet
|
|
2308
|
+
sonst die Checkbox um, deshalb preventDefault auf Knopf und Körper. Ohne Beschreibung und
|
|
2309
|
+
ohne Details entsteht nichts. */
|
|
2310
|
+
function skillAufklappbereich(skill, label, txt, index) {
|
|
2311
|
+
var details = skillDetails(skill);
|
|
2312
|
+
if (!skill.beschreibung && details.length === 0) return;
|
|
2313
|
+
var koerperId = 'dsk-koerper-' + index;
|
|
2314
|
+
var knopf = e('button', 'aufklappknopf');
|
|
2315
|
+
knopf.type = 'button';
|
|
2316
|
+
knopf.setAttribute('aria-expanded', 'false');
|
|
2317
|
+
knopf.setAttribute('aria-controls', koerperId);
|
|
2318
|
+
knopf.setAttribute('aria-label', 'Beschreibung und Details zu ' + skill.name + ' ein- oder ausklappen');
|
|
2319
|
+
var pfeil = document.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
2320
|
+
pfeil.setAttribute('viewBox', '0 0 16 16');
|
|
2321
|
+
pfeil.setAttribute('class', 'akkordeonpfeil dunkel');
|
|
2322
|
+
pfeil.setAttribute('aria-hidden', 'true');
|
|
2323
|
+
pfeil.innerHTML = '<path d="M4 6.5 8 10.5 12 6.5"/>';
|
|
2324
|
+
knopf.appendChild(pfeil);
|
|
2325
|
+
|
|
2326
|
+
var koerper = e('div', 'wahlkoerper');
|
|
2327
|
+
koerper.id = koerperId;
|
|
2328
|
+
koerper.hidden = true;
|
|
2329
|
+
if (skill.beschreibung) koerper.appendChild(e('p', 'skilldetail skillbeschreibung', skill.beschreibung));
|
|
2330
|
+
details.forEach(function (d) {
|
|
2331
|
+
var zeile = e('p', 'skilldetail');
|
|
2332
|
+
zeile.appendChild(e('b', null, d.label + ': '));
|
|
2333
|
+
zeile.appendChild(document.createTextNode(d.text));
|
|
2334
|
+
koerper.appendChild(zeile);
|
|
2335
|
+
});
|
|
2336
|
+
|
|
2337
|
+
knopf.addEventListener('click', function (ev) {
|
|
2338
|
+
ev.preventDefault();
|
|
2339
|
+
var war = knopf.getAttribute('aria-expanded') === 'true';
|
|
2340
|
+
knopf.setAttribute('aria-expanded', war ? 'false' : 'true');
|
|
2341
|
+
koerper.hidden = war;
|
|
2342
|
+
});
|
|
2343
|
+
koerper.addEventListener('click', function (ev) { ev.preventDefault(); });
|
|
2344
|
+
|
|
2345
|
+
txt.classList.add('mitknopf');
|
|
2346
|
+
label.appendChild(knopf);
|
|
2347
|
+
label.appendChild(koerper);
|
|
2348
|
+
}
|
|
2349
|
+
|
|
2303
2350
|
function oeffneSkillsHinzufuegen(z) {
|
|
2304
2351
|
skillsKontext = { modus: 'einzeln', z: z };
|
|
2305
2352
|
$('dsk-ziel').textContent = zielTitel(z);
|
|
@@ -2329,6 +2376,7 @@
|
|
|
2329
2376
|
txt.appendChild(quelleSpanEl);
|
|
2330
2377
|
if (schon) txt.appendChild(e('span', 'notiz', 'Hängt hier schon.'));
|
|
2331
2378
|
label.appendChild(txt);
|
|
2379
|
+
skillAufklappbereich(skill, label, txt, i);
|
|
2332
2380
|
box.appendChild(label);
|
|
2333
2381
|
});
|
|
2334
2382
|
fuelleBundleSektion(function (bundle) { return bundleHaengtIn([z], bundle); }, 1);
|
|
@@ -2374,6 +2422,7 @@
|
|
|
2374
2422
|
txt.appendChild(e('span', 'notiz', 'Hängt schon in ' + (teile.length - fehltIn.length) + ' von ' + teile.length + ' Harnesses.'));
|
|
2375
2423
|
}
|
|
2376
2424
|
label.appendChild(txt);
|
|
2425
|
+
skillAufklappbereich(skill, label, txt, i);
|
|
2377
2426
|
box.appendChild(label);
|
|
2378
2427
|
});
|
|
2379
2428
|
fuelleBundleSektion(function (bundle) { return bundleHaengtIn(teile, bundle); }, teile.length);
|
|
@@ -539,6 +539,15 @@ dialog::backdrop{background:rgba(9,45,37,.62)}
|
|
|
539
539
|
.wahlzeile b{font-family:var(--schrift);font-weight:700;font-size:17px;letter-spacing:-.012em}
|
|
540
540
|
.wahlzeile .mono{display:block;color:var(--tinte-weich);margin-top:3px}
|
|
541
541
|
.wahlzeile .notiz{display:block;margin-top:8px;font-size:16px;color:var(--messing-satt);background:var(--messing-blass);border-left:3px solid var(--messing);padding:7px 10px;border-radius:0 2px 2px 0}
|
|
542
|
+
/* Aufklappbereich einer Wahlzeile im Skills-Dialog (E92). Der Knopf sitzt absolut oben rechts im Label
|
|
543
|
+
(die Zeile ist position:relative), die Textspalte lässt ihm Platz; der Körper ist ein eigenes
|
|
544
|
+
Grid-Kind über beide Spalten. Wie bei .zeile .skillkoerper braucht hidden eine eigene Regel. */
|
|
545
|
+
.wahlzeile .aufklappknopf{position:absolute;top:10px;right:10px}
|
|
546
|
+
.wahlzeile .mitknopf{padding-right:40px}
|
|
547
|
+
.wahlzeile .wahlkoerper{grid-column:1/-1;margin-top:2px;padding-top:12px;border-top:1px solid var(--strich-zart);cursor:text}
|
|
548
|
+
.wahlzeile .wahlkoerper[hidden]{display:none}
|
|
549
|
+
.wahlzeile .wahlkoerper b{font-size:inherit;font-weight:600;letter-spacing:normal}
|
|
550
|
+
.skillbeschreibung{white-space:pre-wrap}
|
|
542
551
|
.nummer{
|
|
543
552
|
font-family:var(--mono);font-size:16px;font-weight:500;width:28px;height:28px;flex:none;display:grid;
|
|
544
553
|
place-items:center;border:1.5px solid var(--tinte);border-radius:50%;margin-top:1px;
|