define(['dialogHelper', 'layoutManager', 'dialogText', 'html!./icons.html', 'css!./style.css', 'paper-button', 'paper-input'], function (dialogHelper, layoutManager, dialogText) { return function (options) { if (typeof options === 'string') { options = { title: '', text: options }; } var dialogOptions = { removeOnClose: true }; var backButton = false; var raisedButtons = false; if (layoutManager.tv) { dialogOptions.size = 'fullscreen'; backButton = true; raisedButtons = true; } else { dialogOptions.modal = false; dialogOptions.entryAnimationDuration = 160; dialogOptions.exitAnimationDuration = 200; } var dlg = dialogHelper.createDialog(dialogOptions); dlg.classList.add('promptDialog'); var html = ''; var submitValue = ''; html += '
'; if (backButton) { html += ''; } if (options.title) { html += '

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

'; } html += '
'; html += ''; if (options.description) { html += '
'; html += options.description; html += '
'; } html += '
'; if (raisedButtons) { html += '' + dialogText.get('Ok') + ''; } else { html += '
'; html += '' + dialogText.get('Ok') + ''; html += '' + dialogText.get('Cancel') + ''; html += '
'; } html += '
'; html += '
'; dlg.innerHTML = html; document.body.appendChild(dlg); dlg.querySelector('form').addEventListener('submit', function (e) { submitValue = dlg.querySelector('.txtPromptValue').value; dialogHelper.close(dlg); e.preventDefault(); return false; }); dlg.querySelector('.btnSubmit').addEventListener('click', function (e) { // Do a fake form submit this the button isn't a real submit button var fakeSubmit = document.createElement('input'); fakeSubmit.setAttribute('type', 'submit'); fakeSubmit.style.display = 'none'; var form = dlg.querySelector('form'); form.appendChild(fakeSubmit); fakeSubmit.click(); form.removeChild(fakeSubmit); }); dlg.querySelector('.btnPromptExit').addEventListener('click', function (e) { dialogHelper.close(dlg); }); return dialogHelper.open(dlg).then(function () { var value = submitValue; if (value) { return value; } else { return Promise.reject(); } }); }; });