UNPKG

chrome-devtools-frontend

Version:
41 lines (36 loc) 1.36 kB
// Copyright 2014 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /* eslint-disable rulesdir/no-imperative-dom-api */ import rootViewStyles from './rootView.css.js'; import {VBox} from './Widget.js'; import {ZoomManager} from './ZoomManager.js'; export class RootView extends VBox { private window?: (Window&typeof globalThis)|null; constructor() { super(); this.markAsRoot(); this.element.classList.add('root-view'); this.registerRequiredCSS(rootViewStyles); this.element.setAttribute('spellcheck', 'false'); } attachToDocument(document: Document): void { if (document.defaultView) { document.defaultView.addEventListener('resize', this.doResize.bind(this), false); } this.window = document.defaultView; this.doResize(); this.show(document.body); } override doResize(): void { if (this.window) { const size = this.constraints().minimum; const zoom = ZoomManager.instance().zoomFactor(); const right = Math.min(0, this.window.innerWidth - size.width / zoom); this.element.style.marginRight = right + 'px'; const bottom = Math.min(0, this.window.innerHeight - size.height / zoom); this.element.style.marginBottom = bottom + 'px'; } super.doResize(); } }