mirror of
https://github.com/Feodor2/Mypal68.git
synced 2025-06-18 14:55:44 -04:00
160 lines
4.4 KiB
JavaScript
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;
|
|
},
|
|
};
|