MCPcopy Create free account
hub / github.com/nodejs/node / constructor

Method constructor

deps/v8/tools/turbolizer/src/resizer.ts:145–262  ·  view source on GitHub ↗
(panesUpdatedCallback: () => void, deadWidth: number, deadHeight: number)

Source from the content-addressed store, hash-verified

143 readonly RESIZER_SIZE = document.getElementById("resizer-ranges").offsetHeight;
144
145 constructor(panesUpdatedCallback: () => void, deadWidth: number, deadHeight: number) {
146 const resizer = this;
147 resizer.panesUpdatedCallback = panesUpdatedCallback;
148 resizer.deadWidth = deadWidth;
149 resizer.deadHeight = deadHeight;
150 resizer.left = document.getElementById(C.SOURCE_PANE_ID);
151 resizer.right = document.getElementById(C.GENERATED_PANE_ID);
152 resizer.ranges = document.getElementById(C.RANGES_PANE_ID);
153 resizer.middle = document.getElementById(C.INTERMEDIATE_PANE_ID);
154 resizer.resizerLeft = d3.select("#resizer-left");
155 resizer.resizerRight = d3.select("#resizer-right");
156 resizer.resizerRanges = d3.select("#resizer-ranges");
157 // Set default sizes, if they weren't set.
158 storageSetIfIsNotExist("source-pane-percent", C.SOURCE_PANE_DEFAULT_PERCENT);
159 storageSetIfIsNotExist("disassembly-pane-percent", C.DISASSEMBLY_PANE_DEFAULT_PERCENT);
160 storageSetIfIsNotExist("ranges-pane-height-percent", C.RANGES_PANE_HEIGHT_DEFAULT_PERCENT);
161 storageSetIfIsNotExist("ranges-pane-width-percent", C.RANGES_PANE_WIDTH_DEFAULT_PERCENT);
162
163 this.updateSizes();
164
165 const dragResizeLeft = d3.drag()
166 .on("drag", () => {
167 const [x, _] = d3.mouse(document.body);
168 resizer.sepLeft = Math.min(Math.max(0, x), resizer.sepRight);
169 if (resizer.sepLeft > resizer.sepRangesX) {
170 resizer.sepRangesX = resizer.sepLeft;
171 }
172 resizer.updatePanes();
173 })
174 .on("start", () => {
175 resizer.rangesInLandscapeMode = resizer.isRangesInLandscapeMode();
176 resizer.resizerLeft.classed("dragged", true);
177 })
178 .on("end", () => {
179 // If the panel is close enough to the left, treat it as if it was pulled
180 // all the way to the left.
181 const [x, y] = d3.mouse(document.body);
182 if (x <= deadWidth) {
183 resizer.sepLeft = 0;
184 resizer.updatePanes();
185 }
186 // Snap if dragged all the way to the left.
187 resizer.resizerLeft.classed("snapped", resizer.sepLeft === 0);
188 if (!resizer.isLeftSnapped()) {
189 storageSetItem("source-pane-percent",
190 resizer.sepLeft / document.body.getBoundingClientRect().width);
191 }
192 resizer.snapper.setSourceExpanded(!resizer.isLeftSnapped());
193 resizer.resizerLeft.classed("dragged", false);
194 if (!resizer.rangesInLandscapeMode) {
195 resizer.dragRangesEnd(y, resizer.sepRangesX >= resizer.sepRight - deadWidth);
196 }
197 });
198 resizer.resizerLeft.call(dragResizeLeft);
199
200 const dragResizeRight = d3.drag()
201 .on("drag", () => {
202 const [x, _] = d3.mouse(document.body);

Callers

nothing calls this directly

Calls 15

updateSizesMethod · 0.95
storageSetIfIsNotExistFunction · 0.90
storageSetItemFunction · 0.90
updatePanesMethod · 0.80
isLeftSnappedMethod · 0.80
setSourceExpandedMethod · 0.80
dragRangesEndMethod · 0.80
isRangesSnappedMethod · 0.80
isRightSnappedMethod · 0.80
restoreExpandedStateMethod · 0.80

Tested by

no test coverage detected