Commit | Line | Data |
---|---|---|
5abaabb3 BA |
1 | function fenToDiag(vname) { |
2 | import(`/variants/${vname}/class.js`).then(module => { | |
3 | window.V = module.default; | |
4 | for (const [k, v] of Object.entries(V.Aliases)) | |
5 | window[k] = v; | |
549ca151 | 6 | re_drawDiagrams(); |
5abaabb3 BA |
7 | }); |
8 | } | |
9 | ||
10 | // TODO: heuristic to improve for ratio != 1 (how?) | |
549ca151 BA |
11 | function getDiagSize(elt) { |
12 | const baseWidth = Math.min(window.innerWidth, 800); | |
13 | let multFact = 1; | |
2c8375bb BA |
14 | if (elt.classList.contains("left") || elt.classList.contains("right")) { |
15 | if (baseWidth >= 551) | |
16 | multFact = 0.45; | |
17 | else | |
18 | multFact = 0.7; | |
19 | } | |
549ca151 BA |
20 | else if (baseWidth > 630) |
21 | multFact = 0.5; | |
22 | else | |
23 | multFact = 0.7; | |
24 | return multFact * baseWidth; | |
5abaabb3 BA |
25 | } |
26 | ||
549ca151 BA |
27 | let vr = null; |
28 | function re_drawDiagrams() { | |
5abaabb3 | 29 | const diagrams = document.getElementsByClassName("diag"); |
549ca151 BA |
30 | if (diagrams.length == 0) |
31 | return; | |
32 | const redrawing = !!vr; | |
33 | if (!redrawing) | |
34 | vr = new Array(diagrams.length); | |
5abaabb3 | 35 | for (let i=0; i<diagrams.length; i++) { |
549ca151 BA |
36 | if (!redrawing) { |
37 | let chessboard = document.createElement("div"); | |
38 | chessboard.classList.add("chessboard"); | |
39 | diagrams[i].appendChild(chessboard); | |
40 | diagrams[i].id = "diag_" + i; | |
41 | } | |
42 | const diagSize = getDiagSize(diagrams[i]); | |
5abaabb3 BA |
43 | diagrams[i].style.width = diagSize + "px"; |
44 | diagrams[i].style.height = diagSize + "px"; | |
549ca151 BA |
45 | if (!redrawing) { |
46 | vr[i] = new V({ | |
47 | element: "diag_" + i, | |
48 | fen: diagrams[i].dataset.fen, | |
b2fc1259 | 49 | marks: diagrams[i].dataset.mks |
2c8375bb | 50 | ? diagrams[i].dataset.mks.split(',') |
b2fc1259 | 51 | : undefined, |
549ca151 BA |
52 | color: diagrams[i].dataset.col || 'w', |
53 | options: {}, | |
54 | diagram: true | |
55 | }); | |
56 | } | |
5abaabb3 BA |
57 | } |
58 | } | |
549ca151 BA |
59 | |
60 | window.onresize = re_drawDiagrams; |