blob: 81959ea02ce536e6fb74b833d4da1db48259eedc [file] [log] [blame]
// 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.
/**
* @unrestricted
*/
Sources.AddSourceMapURLDialog = class extends UI.HBox {
/**
* @param {function(string)} callback
*/
constructor(callback) {
super(true);
this.registerRequiredCSS('sources/dialog.css');
this.contentElement.createChild('label').textContent = Common.UIString('Source map URL: ');
this._input = UI.createInput();
this.contentElement.appendChild(this._input);
this._input.setAttribute('type', 'text');
this._input.addEventListener('keydown', this._onKeyDown.bind(this), false);
const addButton = this.contentElement.createChild('button');
addButton.textContent = Common.UIString('Add');
addButton.addEventListener('click', this._apply.bind(this), false);
this.setDefaultFocusedElement(this._input);
this._callback = callback;
this.contentElement.tabIndex = 0;
}
/**
* @param {function(string)} callback
*/
static show(callback) {
const dialog = new UI.Dialog();
const addSourceMapURLDialog = new Sources.AddSourceMapURLDialog(done);
addSourceMapURLDialog.show(dialog.contentElement);
dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.MeasureContent);
dialog.show();
/**
* @param {string} value
*/
function done(value) {
dialog.hide();
callback(value);
}
}
_apply() {
this._callback(this._input.value);
}
/**
* @param {!Event} event
*/
_onKeyDown(event) {
if (event.keyCode === UI.KeyboardShortcut.Keys.Enter.code) {
event.preventDefault();
this._apply();
}
}
};