define(['paperdialoghelper', 'layoutManager', 'html!./icons.html', 'css!./style.css', 'paper-button', 'paper-input'], function (paperdialoghelper, layoutManager) { function show(options, resolve, reject) { var dialogOptions = { removeOnClose: true }; if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; } var dlg = paperdialoghelper.createDialog(dialogOptions); dlg.classList.add('promptDialog'); var html = ''; var submitValue = ''; html += '
'; html += ''; if (options.title) { html += '

'; html += options.title; html += '

'; } html += ''; // TODO: An actual form element should probably be added html += '
'; html += '' + Globalize.translate('core#ButtonOk') + ''; html += '
'; dlg.innerHTML = html; if (options.text) { dlg.querySelector('.txtPromptValue').value = options.text; } document.body.appendChild(dlg); dlg.querySelector('.paperSubmit').addEventListener('click', function (e) { submitValue = dlg.querySelector('.txtPromptValue').value; paperdialoghelper.close(dlg); }); dlg.querySelector('.btnPromptExit').addEventListener('click', function (e) { paperdialoghelper.close(dlg); }); dlg.addEventListener('iron-overlay-closed', function () { var value = submitValue; if (value) { resolve(value); } else { reject(); } }); paperdialoghelper.open(dlg); } return function (options) { return new Promise(function (resolve, reject) { if (typeof options === 'string') { options = { title: '', text: options }; } show(options, resolve, reject); }); }; });