Index: chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js |
diff --git a/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js b/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js |
deleted file mode 100644 |
index 94556a785cec233c14261e9530d7ebc675205eef..0000000000000000000000000000000000000000 |
--- a/chrome/browser/resources/settings/passwords_and_forms_page/address_edit_dialog.js |
+++ /dev/null |
@@ -1,373 +0,0 @@ |
-// Copyright 2016 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. |
- |
-/** |
- * @fileoverview 'password-edit-dialog' is the dialog that allows showing a |
- * saved password. |
- */ |
-(function() { |
-'use strict'; |
- |
-Polymer({ |
- is: 'settings-address-edit-dialog', |
- |
- behaviors: [ |
- I18nBehavior, |
- ], |
- |
- properties: { |
- /** @private {!chrome.autofillPrivate.AddressEntry} */ |
- address_: Object, |
- |
- /** @private */ |
- title_: String, |
- |
- /** @private {!Array<!chrome.autofillPrivate.CountryEntry>} */ |
- countries_: Array, |
- |
- /** @private {string|undefined} */ |
- countryCode_: { |
- type: String, |
- observer: 'onUpdateCountryCode_', |
- }, |
- |
- /** @private {!Array<!Array<!settings.address.AddressComponentUI>>} */ |
- addressWrapper_: Object, |
- |
- /** @private */ |
- phoneNumber_: { |
- type: String, |
- observer: 'onUpdatePhoneNumber_', |
- }, |
- |
- /** @private */ |
- email_: { |
- type: String, |
- observer: 'onUpdateEmail_', |
- }, |
- |
- /** @private */ |
- canSave_: Boolean, |
- }, |
- |
- /** @override */ |
- ready: function() { |
- this.countryInfo = |
- settings.address.CountryDetailManagerImpl.getInstance(); |
- |
- this.countryInfo.getCountryList().then(function(countryList) { |
- this.countries_ = countryList; |
- }.bind(this)); |
- }, |
- |
- /** |
- * Opens the dialog to edit |address| |
- * @param {!chrome.autofillPrivate.AddressEntry} address |
- */ |
- open: function(address) { |
- this.title_ = |
- this.i18n(address.guid ? 'editAddressTitle' : 'addAddressTitle'); |
- this.address_ = address; |
- |
- // |phoneNumbers| and |emailAddresses| are a single item array. |
- // See crbug.com/497934 for details. |
- this.phoneNumber_ = address.phoneNumbers ? address.phoneNumbers[0] : ''; |
- this.email_ = address.emailAddresses ? address.emailAddresses[0] : ''; |
- |
- if (this.countryCode_ == address.countryCode) |
- this.updateAddressWrapper_(); |
- else |
- this.countryCode_ = address.countryCode; // Updates the address wrapper. |
- |
- // Open is called on the dialog after the address wrapper has been updated. |
- }, |
- |
- /** |
- * Returns a class to denote how long this entry is. |
- * @param {settings.address.AddressComponentUI} setting |
- * @return {string} |
- */ |
- long_: function(setting) { |
- return setting.component.isLongField ? 'long' : ''; |
- }, |
- |
- /** |
- * Updates the wrapper that represents this address in the country's format. |
- * @private |
- */ |
- updateAddressWrapper_: function() { |
- var self = this; |
- |
- // Default to the last country used if no country code is provided. |
- var countryCode = self.countryCode_ || self.countries_[0].countryCode; |
- self.countryInfo.getAddressFormat(countryCode).then(function(format) { |
- /** @type {!Array<!Array<!settings.address.AddressComponentUI>>} */ |
- var wrapper = []; |
- format.components.forEach(function(component) { |
- /** @type {!Array<!settings.address.AddressComponentUI>} */ |
- var components = []; |
- wrapper.push(components); |
- |
- component.row.forEach(function(component) { |
- components.push(new settings.address.AddressComponentUI( |
- self.address_, component)); |
- }); |
- }); |
- self.addressWrapper_ = wrapper; |
- |
- // Flush dom before resize and savability updates. |
- Polymer.dom.flush(); |
- |
-/** |
- * TODO(hcarmona): Fix closure compiler to better understand |SettingsDialog|. |
- * @suppress {missingProperties} |
- */ |
-(function() { |
- self.$.dialog.notifyResize(); |
- |
- self.updateCanSave_(); |
- |
- self.fire('on-update-address-wrapper'); // For easier testing. |
- |
- if (!self.$.dialog.opened) |
- self.$.dialog.open(); |
-})(); |
- }); |
- }, |
- |
- updateCanSave_: function() { |
- var inputs = this.$.dialog.querySelectorAll('.address-column'); |
- |
- for (var i = 0; i < inputs.length; ++i) { |
- if (inputs[i].value) { |
- this.canSave_ = true; |
- this.fire('on-update-can-save'); // For easier testing. |
- return; |
- } |
- } |
- |
- this.canSave_ = false; |
- this.fire('on-update-can-save'); // For easier testing. |
- }, |
- |
- /** |
- * @param {!chrome.autofillPrivate.CountryEntry} country |
- * @return {string} |
- * @private |
- */ |
- getCode_: function(country) { |
- return country.countryCode || 'SPACER'; |
- }, |
- |
- /** |
- * @param {!chrome.autofillPrivate.CountryEntry} country |
- * @return {string} |
- * @private |
- */ |
- getName_: function(country) { |
- return country.name || '------'; |
- }, |
- |
- /** |
- * @param {!chrome.autofillPrivate.CountryEntry} country |
- * @return {boolean} |
- * @private |
- */ |
- isDivision_: function(country) { |
- return !country.countryCode; |
- }, |
- |
- /** |
- * Handler for tapping the save button. |
- * @private |
- */ |
- onSaveButtonTap_: function() { |
- // Set a default country if none is set. |
- if (!this.address_.countryCode) |
- this.address_.countryCode = this.countries_[0].countryCode; |
- |
- this.fire('save-address', this.address_); |
- this.$.dialog.close(); |
- }, |
- |
- /** |
- * Syncs the country code back to the address and rebuilds the address wrapper |
- * for the new location. |
- * @param {string|undefined} countryCode |
- * @private |
- */ |
- onUpdateCountryCode_: function(countryCode) { |
- this.address_.countryCode = countryCode; |
- this.updateAddressWrapper_(); |
- }, |
- |
- /** |
- * Syncs the phone number back to the address. An address can have only one |
- * phone number. Variants are deprecated. |
- * @param {string} phoneNumber |
- */ |
- onUpdatePhoneNumber_: function(phoneNumber) { |
- if (this.address_) |
- this.address_.phoneNumbers = [phoneNumber]; |
- }, |
- |
- /** |
- * Syncs the email back to the address. An address can have only one email. |
- * Variants are deprecated. |
- * @param {string} email |
- */ |
- onUpdateEmail_: function(email) { |
- if (this.address_) |
- this.address_.emailAddresses = [email]; |
- }, |
-}); |
-})(); |
- |
-cr.define('settings.address', function() { |
- /** |
- * Creates a wrapper against a single data member for an address. |
- * @param {!chrome.autofillPrivate.AddressEntry} address |
- * @param {!chrome.autofillPrivate.AddressComponent} component |
- * @constructor |
- */ |
- function AddressComponentUI(address, component) { |
- Object.defineProperty(this, 'value', { |
- get: function() { |
- return this.getValue_(); |
- }, |
- set: function(newValue) { |
- this.setValue_(newValue); |
- }, |
- }); |
- this.address_ = address; |
- this.component = component; |
- this.isTextArea = |
- component.field == chrome.autofillPrivate.AddressField.ADDRESS_LINES; |
- } |
- |
- AddressComponentUI.prototype = { |
- /** |
- * Gets the value from the address that's associated with this component. |
- * @return {string|undefined} |
- * @private |
- */ |
- getValue_: function() { |
- var address = this.address_; |
- switch (this.component.field) { |
- case chrome.autofillPrivate.AddressField.FULL_NAME: |
- // |fullNames| is a single item array. See crbug.com/497934 for |
- // details. |
- return address.fullNames ? address.fullNames[0] : undefined; |
- case chrome.autofillPrivate.AddressField.COMPANY_NAME: |
- return address.companyName; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LINES: |
- return address.addressLines; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_1: |
- return address.addressLevel1; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_2: |
- return address.addressLevel2; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_3: |
- return address.addressLevel3; |
- case chrome.autofillPrivate.AddressField.POSTAL_CODE: |
- return address.postalCode; |
- case chrome.autofillPrivate.AddressField.SORTING_CODE: |
- return address.sortingCode; |
- case chrome.autofillPrivate.AddressField.COUNTRY_CODE: |
- return address.countryCode; |
- default: |
- assertNotReached(); |
- } |
- }, |
- |
- /** |
- * Sets the value in the address that's associated with this component. |
- * @param {string} value |
- * @private |
- */ |
- setValue_: function(value) { |
- var address = this.address_; |
- switch (this.component.field) { |
- case chrome.autofillPrivate.AddressField.FULL_NAME: |
- address.fullNames = [value]; |
- break; |
- case chrome.autofillPrivate.AddressField.COMPANY_NAME: |
- address.companyName = value; |
- break; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LINES: |
- address.addressLines = value; |
- break; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_1: |
- address.addressLevel1 = value; |
- break; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_2: |
- address.addressLevel2 = value; |
- break; |
- case chrome.autofillPrivate.AddressField.ADDRESS_LEVEL_3: |
- address.addressLevel3 = value; |
- break; |
- case chrome.autofillPrivate.AddressField.POSTAL_CODE: |
- address.postalCode = value; |
- break; |
- case chrome.autofillPrivate.AddressField.SORTING_CODE: |
- address.sortingCode = value; |
- break; |
- case chrome.autofillPrivate.AddressField.COUNTRY_CODE: |
- address.countryCode = value; |
- break; |
- default: |
- assertNotReached(); |
- } |
- }, |
- }; |
- |
- /** @interface */ |
- function CountryDetailManager() {} |
- CountryDetailManager.prototype = { |
- /** |
- * Gets the list of available countries. |
- * The default country will be first, followed by a separator, followed by |
- * an alphabetized list of countries available. |
- * @return {!Promise<!Array<!chrome.autofillPrivate.CountryEntry>>} |
- */ |
- getCountryList: assertNotReached, |
- |
- /** |
- * Gets the address format for a given country code. |
- * @param {string} countryCode |
- * @return {!Promise<!chrome.autofillPrivate.AddressComponents>} |
- */ |
- getAddressFormat: assertNotReached, |
- }; |
- |
- /** |
- * Default implementation. Override for testing. |
- * @implements {settings.address.CountryDetailManager} |
- * @constructor |
- */ |
- function CountryDetailManagerImpl() {} |
- cr.addSingletonGetter(CountryDetailManagerImpl); |
- CountryDetailManagerImpl.prototype = { |
- __proto__: CountryDetailManager, |
- |
- /** @override */ |
- getCountryList: function() { |
- return new Promise(function(callback) { |
- chrome.autofillPrivate.getCountryList(callback); |
- }); |
- }, |
- |
- /** @override */ |
- getAddressFormat: function(countryCode) { |
- return new Promise(function(callback) { |
- chrome.autofillPrivate.getAddressComponents(countryCode, callback); |
- }); |
- }, |
- }; |
- |
- return { |
- AddressComponentUI: AddressComponentUI, |
- CountryDetailManager: CountryDetailManager, |
- CountryDetailManagerImpl: CountryDetailManagerImpl, |
- }; |
-}); |