Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
frame.classList.add(CLASS.VISIBLE);
setTimeout(() => {
destroyElement(prerenderFrame);
}, 1000);
});
// $FlowFixMe
const { style } = props;
const { label, layout, height: buttonHeight } = style;
let minimumSize = MINIMUM_SIZE[layout];
const maximumSize = MAXIMUM_SIZE[layout];
if (buttonHeight) {
const possibleSizes = values(BUTTON_SIZE).filter(possibleSize => {
return BUTTON_SIZE_STYLE[possibleSize] && buttonHeight &&
BUTTON_SIZE_STYLE[possibleSize].minHeight <= buttonHeight && BUTTON_SIZE_STYLE[possibleSize].maxHeight >= buttonHeight;
});
possibleSizes.sort((sizeA : $Values, sizeB : $Values) : number => {
return BUTTON_SIZE_STYLE[sizeA].defaultWidth - BUTTON_SIZE_STYLE[sizeB].defaultWidth;
});
minimumSize = possibleSizes[0];
}
const setupAutoResize = (el) => {
event.on(EVENT.RESIZE, ({ width: newWidth, height: newHeight }) => {
if (typeof newWidth === 'number') {
el.style.width = toCSS(newWidth);
}
$ReadOnlyArray<{ fundingSource : $Values, paymentMethodID : string, vendor? : $Values, label : string }> {
const vaultedFunding = [];
for (const fundingSource of values(FUNDING)) {
const fundingConfig = fundingEligibility[fundingSource];
if (fundingConfig && fundingConfig.eligible && fundingConfig.vaultedInstruments) {
// $FlowFixMe
for (const { id, label: { description } } of fundingConfig.vaultedInstruments) {
vaultedFunding.push({ fundingSource, label: description, paymentMethodID: id });
}
}
if (fundingConfig && fundingConfig.vendors) {
for (const vendor of values(CARD)) {
// $FlowFixMe
const vendorConfig = fundingConfig.vendors[vendor];
if (vendorConfig && vendorConfig.vaultedInstruments) {
for (const { id, label: { description } } of vendorConfig.vaultedInstruments) {
vaultedFunding.push({ fundingSource, vendor, label: description, paymentMethodID: id });
}
}
}
}
}
return vaultedFunding;
}
export function determineVaultedFunding({ fundingEligibility } : {| fundingEligibility : FundingEligibilityType |}) :
$ReadOnlyArray<{ fundingSource : $Values, paymentMethodID : string, vendor? : $Values, label : string }> {
const vaultedFunding = [];
for (const fundingSource of values(FUNDING)) {
const fundingConfig = fundingEligibility[fundingSource];
if (fundingConfig && fundingConfig.eligible && fundingConfig.vaultedInstruments) {
// $FlowFixMe
for (const { id, label: { description } } of fundingConfig.vaultedInstruments) {
vaultedFunding.push({ fundingSource, label: description, paymentMethodID: id });
}
}
if (fundingConfig && fundingConfig.vendors) {
for (const vendor of values(CARD)) {
// $FlowFixMe
const vendorConfig = fundingConfig.vendors[vendor];
if (vendorConfig && vendorConfig.vaultedInstruments) {
for (const { id, label: { description } } of vendorConfig.vaultedInstruments) {
if (height < minHeight || height > maxHeight) {
throw new Error(`Expected style.height to be between ${ minHeight }px and ${ maxHeight }px - got ${ height }px`);
}
}
if (layout === BUTTON_LAYOUT.VERTICAL) {
if (tagline) {
throw new Error(`style.tagline is not allowed for ${ BUTTON_LAYOUT.VERTICAL } layout`);
}
}
return { label, layout, color, shape, tagline, height, period };
}
const COUNTRIES = values(COUNTRY);
const FUNDING_SOURCES = values(FUNDING);
const ENVS = values(ENV);
const PLATFORMS = values(PLATFORM);
export function normalizeButtonProps(props : ?ButtonPropsInputs) : RenderButtonProps {
if (!props) {
throw new Error(`Expected props`);
}
let {
clientID,
// $FlowFixMe
style = {},
remembered = [],
locale = DEFAULT_PROPS.LOCALE,
throw new Error(`Expected style.height to be between ${ minHeight }px and ${ maxHeight }px - got ${ height }px`);
}
}
if (layout === BUTTON_LAYOUT.VERTICAL) {
if (tagline) {
throw new Error(`style.tagline is not allowed for ${ BUTTON_LAYOUT.VERTICAL } layout`);
}
}
return { label, layout, color, shape, tagline, height, period };
}
const COUNTRIES = values(COUNTRY);
const FUNDING_SOURCES = values(FUNDING);
const ENVS = values(ENV);
const PLATFORMS = values(PLATFORM);
export function normalizeButtonProps(props : ?ButtonPropsInputs) : RenderButtonProps {
if (!props) {
throw new Error(`Expected props`);
}
let {
clientID,
// $FlowFixMe
style = {},
remembered = [],
locale = DEFAULT_PROPS.LOCALE,
env = DEFAULT_PROPS.ENV,
platform = DEFAULT_PROPS.PLATFORM,
export function createButtonHTML(fundingEligibility? : Object = DEFAULT_FUNDING_ELIGIBILITY) {
const buttons = [];
for (const fundingSource of values(FUNDING)) {
const fundingConfig = fundingEligibility[fundingSource];
if (!fundingConfig || !fundingConfig.eligible) {
continue;
}
buttons.push(`<button data-funding-source="${ fundingSource }">`);
if (fundingConfig.vaultedInstruments) {
for (const vaultedInstrument of fundingConfig.vaultedInstruments) {
buttons.push(`</button><button data-payment-method-id="${ vaultedInstrument.id }" data-funding-source="${ fundingSource }">`);
}
}
if (fundingSource === FUNDING.CARD) {
for (const card of values(CARD)) {</button>
if (!style) {
throw new Error(`Expected props.style to be set`);
}
const {
label,
layout = DEFAULT_STYLE.LAYOUT,
color = DEFAULT_STYLE.COLOR,
shape = DEFAULT_STYLE.SHAPE,
tagline = (layout === BUTTON_LAYOUT.HORIZONTAL),
height,
period
} = style;
if (values(BUTTON_LAYOUT).indexOf(layout) === -1) {
throw new Error(`Invalid layout: ${ layout }`);
}
if (label && values(BUTTON_LABEL).indexOf(label) === -1) {
throw new Error(`Invalid label: ${ label }`);
}
const FUNDING_CONFIG = getFundingConfig();
const fundingConfig = FUNDING_CONFIG[FUNDING.PAYPAL];
if (!fundingConfig) {
throw new Error(`Expected ${ FUNDING.PAYPAL } to be eligible`);
}
if (color && fundingConfig.colors.indexOf(color) === -1) {
throw new Error(`Unexpected style.color for ${ FUNDING.PAYPAL } button: ${ color }, expected ${ fundingConfig.colors.join(', ') }`);
function validatePropDefinitions<p>(options : ComponentOptionsType</p><p>) {
if (options.props && !(typeof options.props === 'object')) {
throw new Error(`Expected options.props to be an object`);
}
const PROP_TYPE_LIST = values(PROP_TYPE);
if (options.props) {
for (const key of Object.keys(options.props)) {
const prop = options.props[key];
if (!prop || !(typeof prop === 'object')) {
throw new Error(`Expected options.props.${ key } to be an object`);
}
if (!prop.type) {
throw new Error(`Expected prop.type`);
}
if (PROP_TYPE_LIST.indexOf(prop.type) === -1) {
throw new Error(`Expected prop.type to be one of ${ PROP_TYPE_LIST.join(', ') }`);
}</p>