/** * @licstart The following is the entire license notice for the * Javascript code in this page * * Copyright 2018 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * @licend The above is the entire license notice for the * Javascript code in this page */ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PasswordPrompt = void 0; var _ui_utils = require("./ui_utils"); var _pdf = require("../pdf"); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } var PasswordPrompt = /*#__PURE__*/ function () { function PasswordPrompt(options, overlayManager) { var _this = this; var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; _classCallCheck(this, PasswordPrompt); this.overlayName = options.overlayName; this.container = options.container; this.label = options.label; this.input = options.input; this.submitButton = options.submitButton; this.cancelButton = options.cancelButton; this.overlayManager = overlayManager; this.l10n = l10n; this.updateCallback = null; this.reason = null; this.submitButton.addEventListener('click', this.verify.bind(this)); this.cancelButton.addEventListener('click', this.close.bind(this)); this.input.addEventListener('keydown', function (e) { if (e.keyCode === 13) { _this.verify(); } }); this.overlayManager.register(this.overlayName, this.container, this.close.bind(this), true); } _createClass(PasswordPrompt, [{ key: "open", value: function open() { var _this2 = this; this.overlayManager.open(this.overlayName).then(function () { _this2.input.focus(); var promptString; if (_this2.reason === _pdf.PasswordResponses.INCORRECT_PASSWORD) { promptString = _this2.l10n.get('password_invalid', null, 'Invalid password. Please try again.'); } else { promptString = _this2.l10n.get('password_label', null, 'Enter the password to open this PDF file.'); } promptString.then(function (msg) { _this2.label.textContent = msg; }); }); } }, { key: "close", value: function close() { var _this3 = this; this.overlayManager.close(this.overlayName).then(function () { _this3.input.value = ''; }); } }, { key: "verify", value: function verify() { var password = this.input.value; if (password && password.length > 0) { this.close(); return this.updateCallback(password); } } }, { key: "setUpdateCallback", value: function setUpdateCallback(updateCallback, reason) { this.updateCallback = updateCallback; this.reason = reason; } }]); return PasswordPrompt; }(); exports.PasswordPrompt = PasswordPrompt;