|
11 | 11 | let value = "";
|
12 | 12 | let submit = false;
|
13 | 13 |
|
14 |
| - //Testing code for window resize |
15 |
| -
|
16 | 14 | onMount(async () => {
|
17 |
| - //==========BEGINNING - WORKING CODE FOR RESIZING DOM ELEMENTS USING DIVIDERS===========// |
| 15 | + //ST-2022-RJ==========BEGINNING - WORKING CODE FOR RESIZING DOM ELEMENTS USING DIVIDERS===========// |
18 | 16 | let upperPanel = document.getElementById("wrapper-upper");
|
19 | 17 | let editorPanel = document.getElementById("editor-window");
|
20 | 18 | let filedirPanel = document.getElementById("file-dir");
|
|
44 | 42 | filedirPanel.style.width =
|
45 | 43 | parseInt(getComputedStyle(filedirPanel).width) - dx + "px"; //Resizing width of edit panel
|
46 | 44 | } else if (panel === "statemgr-divider") {
|
47 |
| - // statemgrPanel.style.width = (parseInt(getComputedStyle(statemgrPanel).width) - dx) + "px"; //Resizing width of edit panel |
| 45 | + statemgrPanel.style.width = |
| 46 | + parseInt(getComputedStyle(statemgrPanel).width) - dx + "px"; //Resizing width of edit panel |
48 | 47 | // statemgrPanel.style.width = 500 + "px"; //Direct resize works but not with dragging---think it may be related to xterm sizing...
|
49 |
| - } else { |
50 | 48 | }
|
51 |
| - //Update mousedown coordinates for next resizing event (curor moves again while mouse is down) |
52 |
| - mdown_posx = e.x; |
53 |
| - mdown_posy = e.y; |
54 |
| - } |
55 | 49 |
|
56 |
| - function chgCursor(e, panel) { |
57 |
| - if (panel === "horizontal-divider") { |
58 |
| - e.target.style.cursor = "row-resize"; |
59 |
| - } else { |
60 |
| - e.target.style.cursor = "col-resize"; |
| 50 | + function chgCursor(e, panel) { |
| 51 | + if (panel === "horizontal-divider") { |
| 52 | + e.target.style.cursor = "row-resize"; |
| 53 | + } else { |
| 54 | + e.target.style.cursor = "col-resize"; |
| 55 | + } |
61 | 56 | }
|
62 |
| - } |
63 | 57 |
|
64 |
| - function dragStart(e, panel) { |
65 |
| - e.preventDefault(); //stop selection of text during mouse move / mouse down event |
| 58 | + function dragStart(e, panel) { |
| 59 | + e.preventDefault(); //stop selection of text during mouse move / mouse down event |
66 | 60 |
|
67 |
| - //Need this so window events continue tracking on top of iframe |
68 |
| - let iframeList = document.getElementsByClassName("webpage"); |
69 |
| - for (const item of iframeList) { |
70 |
| - item.setAttribute("style", "pointer-events: none"); |
71 |
| - } |
72 |
| - //defining function here so can remove event listener (unable to remove it with parameters - here it'll have closure access to panel) |
73 |
| - const trackMouseMove = (e) => { |
74 |
| - // console.log(`ex: ${e.x}`) |
75 |
| - dragMovement(e, panel); |
76 |
| - }; |
77 |
| -
|
78 |
| - const trackMouseUp = (e) => { |
79 |
| - // console.log('Mouse Up'); |
80 |
| - dragEnd(e, panel); |
81 |
| - window.removeEventListener("mousemove", trackMouseMove, true); |
82 |
| - window.removeEventListener("mouseup", trackMouseUp, true); |
83 |
| -
|
84 |
| - //Removing no pointer events from iframes on mouse up |
| 61 | + //Need this so window events continue tracking on top of iframe |
85 | 62 | let iframeList = document.getElementsByClassName("webpage");
|
86 | 63 | for (const item of iframeList) {
|
87 |
| - item.setAttribute("style", ""); |
| 64 | + item.setAttribute("style", "pointer-events: none"); |
| 65 | + } |
| 66 | + //defining function here so can remove event listener (unable to remove it with parameters - here it'll have closure access to panel) |
| 67 | + const trackMouseMove = (e) => { |
| 68 | + // console.log(`ex: ${e.x}`) |
| 69 | + dragMovement(e, panel); |
| 70 | + }; |
| 71 | +
|
| 72 | + const trackMouseUp = (e) => { |
| 73 | + // console.log('Mouse Up'); |
| 74 | + dragEnd(e, panel); |
| 75 | + window.removeEventListener("mousemove", trackMouseMove, true); |
| 76 | + window.removeEventListener("mouseup", trackMouseUp, true); |
| 77 | +
|
| 78 | + //Removing no pointer events from iframes on mouse up |
| 79 | + let iframeList = document.getElementsByClassName("webpage"); |
| 80 | + for (const item of iframeList) { |
| 81 | + item.setAttribute("style", ""); |
| 82 | + } |
| 83 | + }; |
| 84 | + window.addEventListener("mousemove", trackMouseMove, true); |
| 85 | + window.addEventListener("mouseup", trackMouseUp, true); |
| 86 | +
|
| 87 | + if (panel === "horizontal-divider") { |
| 88 | + mdown_posy = e.y; |
| 89 | + resizeObj[panel].isResizing = true; |
| 90 | + } else { |
| 91 | + mdown_posx = e.x; |
| 92 | + resizeObj[panel].isResizing = true; |
88 | 93 | }
|
89 |
| - }; |
90 |
| - window.addEventListener("mousemove", trackMouseMove, true); |
91 |
| - window.addEventListener("mouseup", trackMouseUp, true); |
92 |
| -
|
93 |
| - if (panel === "horizontal-divider") { |
94 |
| - mdown_posy = e.y; |
95 |
| - resizeObj[panel].isResizing = true; |
96 |
| - } else { |
97 |
| - mdown_posx = e.x; |
98 |
| - resizeObj[panel].isResizing = true; |
99 | 94 | }
|
100 |
| - } |
101 | 95 |
|
102 |
| - function dragMovement(e, panel) { |
103 |
| - e.preventDefault(); //stop selection of text during mouse move / mouse down event |
104 |
| - x_pos = e.x; |
105 |
| - y_pos = e.y; |
106 |
| -
|
107 |
| - if (panel === "horizontal-divider") { |
108 |
| - if (resizeObj[panel].isResizing === true) { |
109 |
| - resize(e, "horizontal-divider"); |
110 |
| - } |
111 |
| - } else if (panel === "editor-divider") { |
112 |
| - if (resizeObj[panel].isResizing === true) { |
113 |
| - resize(e, "editor-divider"); |
| 96 | + function dragMovement(e, panel) { |
| 97 | + e.preventDefault(); //stop selection of text during mouse move / mouse down event |
| 98 | + x_pos = e.x; |
| 99 | + y_pos = e.y; |
| 100 | +
|
| 101 | + if (panel === "horizontal-divider") { |
| 102 | + if (resizeObj[panel].isResizing === true) { |
| 103 | + resize(e, "horizontal-divider"); |
| 104 | + } |
| 105 | + } else if (panel === "editor-divider") { |
| 106 | + if (resizeObj[panel].isResizing === true) { |
| 107 | + resize(e, "editor-divider"); |
| 108 | + } |
| 109 | + } else if (panel === "filedir-divider") { |
| 110 | + if (resizeObj[panel].isResizing === true) { |
| 111 | + resize(e, "filedir-divider"); |
| 112 | + } |
| 113 | + } else if (panel === "statemgr-divider") { |
| 114 | + if (resizeObj[panel].isResizing === true) { |
| 115 | + resize(e, "statemgr-divider"); |
| 116 | + } |
| 117 | + } else { |
114 | 118 | }
|
115 |
| - } else if (panel === "filedir-divider") { |
116 |
| - if (resizeObj[panel].isResizing === true) { |
117 |
| - resize(e, "filedir-divider"); |
118 |
| - } |
119 |
| - } else if (panel === "statemgr-divider") { |
120 |
| - if (resizeObj[panel].isResizing === true) { |
121 |
| - resize(e, "statemgr-divider"); |
122 |
| - } |
123 |
| - } else { |
124 | 119 | }
|
125 | 120 | }
|
126 | 121 |
|
|
148 | 143 | dragStart(e, "editor-divider")
|
149 | 144 | );
|
150 | 145 |
|
151 |
| - filedirDivider.addEventListener("mouseover", (e) => |
152 |
| - chgCursor(e, "filedir-divider") |
153 |
| - ); |
154 |
| - filedirDivider.addEventListener("mousedown", (e) => |
155 |
| - dragStart(e, "filedir-divider") |
156 |
| - ); |
157 |
| -
|
158 |
| - statemgrDivider.addEventListener("mouseover", (e) => |
159 |
| - chgCursor(e, "statemgr-divider") |
160 |
| - ); |
161 |
| - statemgrDivider.addEventListener("mousedown", (e) => |
162 |
| - dragStart(e, "statemgr-divider") |
163 |
| - ); |
| 146 | + function dragEnd(e, panel) { |
| 147 | + e.preventDefault(); //stop selection of text during mouse move / mouse down event |
| 148 | + resizeObj[panel].isResizing = false; |
| 149 | + } |
164 | 150 |
|
165 | 151 | //==========END - WORKING CODE FOR RESIZING DOM ELEMENTS USING DIVIDERS===========//
|
| 152 | +
|
| 153 | + //ST-2022-RJ Setting xterm layers to have 100% width so risizing able to be dynamic - overwriting default styles onMount and |
| 154 | + function xtermRestyle(className) { |
| 155 | + let domElement = document.getElementsByClassName(className); |
| 156 | + for (const item of domElement) { |
| 157 | + let currentStyle = item.getAttribute("style").split(";"); //Array of each style attribute string |
| 158 | + for (let i = 0; i < currentStyle.length; i++) { |
| 159 | + const style = currentStyle[i]; |
| 160 | + console.log(style.indexOf("width")); |
| 161 | + if (style.indexOf("width") !== -1) currentStyle[i] = "width: 100%"; |
| 162 | + } |
| 163 | + item.setAttribute("style", currentStyle.join(";")); |
| 164 | + } |
| 165 | + } |
| 166 | +
|
| 167 | + function xtermSetWidth() { |
| 168 | + xtermRestyle("xterm-screen"); |
| 169 | + xtermRestyle("xterm-text-layer"); |
| 170 | + xtermRestyle("xterm-selection-layer"); |
| 171 | + xtermRestyle("xterm-link-layer"); |
| 172 | + xtermRestyle("xterm-cursor-layer"); |
| 173 | + } |
| 174 | +
|
| 175 | + xtermSetWidth(); |
| 176 | + //Need to trigger this after resize so that it follows xterm's fittaddon resize |
| 177 | + window.addEventListener("resize", xtermSetWidth); |
166 | 178 | }); //End of onMount
|
167 | 179 |
|
168 | 180 | const handleSubmit = () => {
|
|
247 | 259 | }
|
248 | 260 |
|
249 | 261 | .wrapper-upper {
|
250 |
| - height: 65%; |
| 262 | + height: 80%; |
251 | 263 | display: flex;
|
252 | 264 | flex-direction: row;
|
253 | 265 | width: 98%;
|
|
260 | 272 | }
|
261 | 273 | .wrapper-bottom {
|
262 | 274 | min-height: 1%;
|
263 |
| - height: 35%; |
| 275 | + height: 20%; |
264 | 276 | flex-grow: 1;
|
265 | 277 | display: flex;
|
266 | 278 | flex-direction: row;
|
|
308 | 320 | font-size: 10px;
|
309 | 321 | overflow: auto;
|
310 | 322 | /* resize: horizontal; */
|
| 323 | + max-width: 30%; |
311 | 324 | width: 12.5%;
|
312 | 325 | min-width: 12.5%;
|
| 326 | + min-width: 1%; |
313 | 327 | /* max-width: 30%; */
|
314 | 328 | background-color: #070a0f;
|
315 | 329 | border-right: 1px solid #3d3d3d;
|
|
329 | 343 | /* State Management Window - SvelteTeam */
|
330 | 344 | .c {
|
331 | 345 | overflow: auto;
|
332 |
| - width: 14.8%; |
333 |
| - min-width: 10%; |
| 346 | + max-width: 30.4%; |
| 347 | + width: 12.8%; |
| 348 | + /* min-width: 12.8%; */ |
| 349 | + min-width: 1%; |
| 350 | + /* background-color: rgba(28, 28, 36, 0.678); */ |
334 | 351 | background-color: #070a0f;
|
335 | 352 | border-right: 1px solid #3d3d3d;
|
336 | 353 | padding: 0;
|
|
358 | 375 | /* Terminal Window - SvelteTeam */
|
359 | 376 | .e {
|
360 | 377 | font: white;
|
361 |
| - /* overflow: auto; */ |
362 |
| - width: 100%; |
| 378 | + overflow: auto; |
| 379 | + /* width: 100%; */ |
| 380 | + flex-grow: 1; |
| 381 | + /* background-color: rgba(35, 35, 65, 0.452); */ |
363 | 382 | background-color: #0d1117;
|
364 | 383 | }
|
365 | 384 |
|
|
0 commit comments