| // 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(); | |
| } | |
| } | |
| }; |