blob: 774e514b387fe12d5b0502691125f1535d5d42de [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(/* isWebComponent */ true);
this.registerRequiredCSS('sources/dialog.css');
this.contentElement.createChild('label').textContent = Common.UIString('Source map URL: ');
this._input = UI.createInput('add-source-map', 'text');
this._input.addEventListener('keydown', this._onKeyDown.bind(this), false);
this.contentElement.appendChild(this._input);
const addButton = UI.createTextButton(ls`Add`, this._apply.bind(this));
this.contentElement.appendChild(addButton);
this._dialog = new UI.Dialog();
this._dialog.setSizeBehavior(UI.GlassPane.SizeBehavior.MeasureContent);
this._dialog.setDefaultFocusedElement(this._input);
/**
* @this {Sources.AddSourceMapURLDialog}
*/
this._done = function(value) {
this._dialog.hide();
callback(value);
};
}
/**
* @override
*/
show() {
super.show(this._dialog.contentElement);
this._dialog.show();
}
_apply() {
this._done(this._input.value);
}
/**
* @param {!Event} event
*/
_onKeyDown(event) {
if (isEnterKey(event)) {
event.consume(true);
this._apply();
}
}
};