Mypal68/browser/components/payments/res/unprivileged-fallbacks.js
2022-04-16 07:41:55 +03:00

160 lines
4.4 KiB
JavaScript

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
/**
* This file defines fallback objects to be used during development outside
* of the paymentDialogWrapper. When loaded in the wrapper, a frame script
* overwrites these methods. Since these methods need to get overwritten in the
* global scope, it can't be converted into an ES module.
*/
/* eslint-disable no-console */
/* exported log, PaymentDialogUtils */
"use strict";
var log = {
error: console.error.bind(console, "paymentRequest.xhtml:"),
warn: console.warn.bind(console, "paymentRequest.xhtml:"),
info: console.info.bind(console, "paymentRequest.xhtml:"),
debug: console.debug.bind(console, "paymentRequest.xhtml:"),
};
var PaymentDialogUtils = {
getAddressLabel(address, addressFields = null) {
if (addressFields) {
let requestedFields = addressFields.trim().split(/\s+/);
return (
requestedFields
.filter(f => f && address[f])
.map(f => address[f])
.join(", ") + ` (${address.guid})`
);
}
return `${address.name} (${address.guid})`;
},
getCreditCardNetworks() {
// Shim for list of known and supported credit card network ids as exposed by
// toolkit/modules/CreditCard.jsm
return [
"amex",
"cartebancaire",
"diners",
"discover",
"jcb",
"mastercard",
"mir",
"unionpay",
"visa",
];
},
isCCNumber(str) {
return !!str.replace(/[-\s]/g, "").match(/^\d{9,}$/);
},
DEFAULT_REGION: "US",
countries: new Map([
["US", "United States"],
["CA", "Canada"],
["DE", "Germany"],
]),
getFormFormat(country) {
if (country == "DE") {
return {
addressLevel3Label: "suburb",
addressLevel2Label: "city",
addressLevel1Label: "province",
addressLevel1Options: null,
postalCodeLabel: "postalCode",
fieldsOrder: [
{
fieldId: "name",
newLine: true,
},
{
fieldId: "organization",
newLine: true,
},
{
fieldId: "street-address",
newLine: true,
},
{ fieldId: "postal-code" },
{ fieldId: "address-level2" },
],
postalCodePattern: "\\d{5}",
countryRequiredFields: [
"street-address",
"address-level2",
"postal-code",
],
};
}
let addressLevel1Options = null;
if (country == "US") {
addressLevel1Options = new Map([
["CA", "California"],
["MA", "Massachusetts"],
["MI", "Michigan"],
]);
} else if (country == "CA") {
addressLevel1Options = new Map([
["NS", "Nova Scotia"],
["ON", "Ontario"],
["YT", "Yukon"],
]);
}
let fieldsOrder = [
{ fieldId: "name", newLine: true },
{ fieldId: "street-address", newLine: true },
{ fieldId: "address-level2" },
{ fieldId: "address-level1" },
{ fieldId: "postal-code" },
{ fieldId: "organization" },
];
if (country == "BR") {
fieldsOrder.splice(2, 0, { fieldId: "address-level3" });
}
return {
addressLevel3Label: "suburb",
addressLevel2Label: "city",
addressLevel1Label: country == "US" ? "state" : "province",
addressLevel1Options,
postalCodeLabel: country == "US" ? "zip" : "postalCode",
fieldsOrder,
// The following values come from addressReferences.js and should not be changed.
/* eslint-disable-next-line max-len */
postalCodePattern:
country == "US"
? "(\\d{5})(?:[ \\-](\\d{4}))?"
: "[ABCEGHJKLMNPRSTVXY]\\d[ABCEGHJ-NPRSTV-Z] ?\\d[ABCEGHJ-NPRSTV-Z]\\d",
countryRequiredFields:
country == "US" || country == "CA"
? [
"street-address",
"address-level2",
"address-level1",
"postal-code",
]
: ["street-address", "address-level2", "postal-code"],
};
},
findAddressSelectOption(selectEl, address, fieldName) {
return null;
},
getDefaultPreferences() {
let prefValues = {
saveCreditCardDefaultChecked: false,
saveAddressDefaultChecked: true,
};
return prefValues;
},
isOfficialBranding() {
return false;
},
};