|
16 | 16 | export function setWidgetVisible(widget, visible) { |
17 | 17 | if (!widget) return; |
18 | 18 | if (visible) { |
19 | | - if (widget.__mec_origType !== undefined) { |
20 | | - widget.type = widget.__mec_origType; |
| 19 | + if ("__mec_origType" in widget) { |
| 20 | + const t = widget.__mec_origType; |
| 21 | + if (t === undefined) delete widget.type; else widget.type = t; |
21 | 22 | delete widget.__mec_origType; |
22 | 23 | } |
23 | | - if (widget.__mec_origComputeSize !== undefined) { |
24 | | - widget.computeSize = widget.__mec_origComputeSize; |
| 24 | + if ("__mec_origComputeSize" in widget) { |
| 25 | + const cs = widget.__mec_origComputeSize; |
| 26 | + if (cs === undefined) delete widget.computeSize; else widget.computeSize = cs; |
25 | 27 | delete widget.__mec_origComputeSize; |
| 28 | + } else { |
| 29 | + // No saved original: drop any forced [0,-4] so the prototype default returns. |
| 30 | + delete widget.computeSize; |
26 | 31 | } |
27 | 32 | widget.hidden = false; |
28 | 33 | const el = widget.element; |
29 | 34 | if (el) { |
30 | | - el.style.display = widget.__mec_origElDisplay ?? ""; |
31 | | - delete widget.__mec_origElDisplay; |
| 35 | + if ("__mec_origElDisplay" in widget) { |
| 36 | + const d = widget.__mec_origElDisplay; |
| 37 | + el.style.display = d ?? ""; |
| 38 | + delete widget.__mec_origElDisplay; |
| 39 | + } else { |
| 40 | + el.style.display = ""; |
| 41 | + } |
32 | 42 | const wrap = el.parentElement; |
33 | 43 | if (wrap && wrap.classList?.contains("dom-widget")) { |
34 | | - wrap.style.display = widget.__mec_origWrapDisplay ?? ""; |
35 | | - delete widget.__mec_origWrapDisplay; |
| 44 | + if ("__mec_origWrapDisplay" in widget) { |
| 45 | + const d = widget.__mec_origWrapDisplay; |
| 46 | + wrap.style.display = d ?? ""; |
| 47 | + delete widget.__mec_origWrapDisplay; |
| 48 | + } else { |
| 49 | + wrap.style.display = ""; |
| 50 | + } |
36 | 51 | } |
37 | 52 | } |
38 | 53 | delete widget.__mec_hidden; |
39 | 54 | } else { |
40 | | - if (widget.__mec_origType === undefined) widget.__mec_origType = widget.type; |
41 | | - if (widget.__mec_origComputeSize === undefined) widget.__mec_origComputeSize = widget.computeSize; |
| 55 | + if (!("__mec_origType" in widget)) widget.__mec_origType = widget.type; |
| 56 | + if (!("__mec_origComputeSize" in widget)) widget.__mec_origComputeSize = widget.computeSize; |
42 | 57 | widget.type = "hidden"; |
43 | 58 | widget.computeSize = () => [0, -4]; |
44 | 59 | widget.hidden = true; |
45 | 60 | const el = widget.element; |
46 | 61 | if (el) { |
47 | | - if (widget.__mec_origElDisplay === undefined) { |
48 | | - widget.__mec_origElDisplay = el.style.display || ""; |
49 | | - } |
| 62 | + if (!("__mec_origElDisplay" in widget)) widget.__mec_origElDisplay = el.style.display; |
50 | 63 | el.style.display = "none"; |
51 | 64 | const wrap = el.parentElement; |
52 | 65 | if (wrap && wrap.classList?.contains("dom-widget")) { |
53 | | - if (widget.__mec_origWrapDisplay === undefined) { |
54 | | - widget.__mec_origWrapDisplay = wrap.style.display || ""; |
55 | | - } |
| 66 | + if (!("__mec_origWrapDisplay" in widget)) widget.__mec_origWrapDisplay = wrap.style.display; |
56 | 67 | wrap.style.display = "none"; |
57 | 68 | } |
58 | 69 | } |
|
0 commit comments