react-svg-credit-card-payment-icons
Version:
React components library with 6 styles, 108 icons, TypeScript support, and a variety of types and formats for easy integration into React applications.
117 lines (73 loc) • 4.42 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
var _chunkL6GFGSCFjs = require('../chunk-L6GFGSCF.js');
var _chunkRGJ6MZAYjs = require('../chunk-RGJ6MZAY.js');
var _chunkZ6XF6SI7js = require('../chunk-Z6XF6SI7.js');
var _chunk6XRDD3IFjs = require('../chunk-6XRDD3IF.js');
var _chunkY7EIZLSHjs = require('../chunk-Y7EIZLSH.js');
var _chunkYF2USNEIjs = require('../chunk-YF2USNEI.js');
var _chunkCFPQINKUjs = require('../chunk-CFPQINKU.js');
require('../chunk-MLKGABMK.js');
// src/index.native.tsx
var _react = require('react'); var _react2 = _interopRequireDefault(_react);
var categoryMappings = {
flat: _chunkL6GFGSCFjs.flat_exports,
flatRounded: _chunkRGJ6MZAYjs.flat_rounded_exports,
logo: _chunkZ6XF6SI7js.logo_exports,
logoBorder: _chunk6XRDD3IFjs.logo_border_exports,
mono: _chunkY7EIZLSHjs.mono_exports,
monoOutline: _chunkYF2USNEIjs.mono_outline_exports
};
var defaultType = "generic";
var defaultCategory = "flat";
var aspectRatio = 780 / 500;
var defaultWidth = 40;
function resolveAlias(input) {
for (const card of _chunkCFPQINKUjs.CARD_METADATA) {
if (card.type === input) {
return { type: card.type };
}
if (card.aliases.some((alias) => alias === input)) {
return { type: card.type };
}
if (card.variants) {
for (const [variantAlias, variantDef] of Object.entries(card.variants)) {
if (variantAlias === input) {
return { type: card.type, variant: variantDef.slug };
}
}
}
}
return { type: input };
}
function PaymentIcon(props) {
const category = props.format || defaultCategory;
if (!categoryMappings[category])
throw new Error(
`Invalid category: ${category} please use one of ${Object.keys(categoryMappings).join(", ")}`
);
const inputType = props.type || defaultType;
const resolved = resolveAlias(inputType);
const sanitizedType = resolved.type.replace(/[-_]/g, "");
const normalizedType = sanitizedType.charAt(0).toUpperCase() + sanitizedType.slice(1);
const categoryComponents = categoryMappings[category];
let Component;
if (resolved.variant && !props.variant) {
const sanitizedInput = inputType.replace(/[-_]/g, "");
const normalizedInput = sanitizedInput.charAt(0).toUpperCase() + sanitizedInput.slice(1);
Component = categoryComponents[normalizedInput];
} else if (props.variant) {
const sanitizedVariant = props.variant.replace(/[-_]/g, "");
const normalizedVariant = sanitizedVariant.charAt(0).toUpperCase() + sanitizedVariant.slice(1);
const compositeKey = `${normalizedType}${normalizedVariant}`;
Component = _nullishCoalesce(categoryComponents[compositeKey], () => ( categoryComponents[normalizedVariant]));
} else {
Component = categoryComponents[normalizedType];
}
if (!Component) {
Component = _chunkRGJ6MZAYjs.Generic_default;
}
const width = _nullishCoalesce(props.width, () => ( (props.height ? props.height * aspectRatio : defaultWidth)));
const height = _nullishCoalesce(props.height, () => ( width / aspectRatio));
return /* @__PURE__ */ _react2.default.createElement(Component, { ...props, width, height, viewBox: "0 0 780 500" });
}
exports.PaymentIcon = PaymentIcon; exports.detectCardType = _chunkCFPQINKUjs.detectCardType; exports.flat = _chunkL6GFGSCFjs.flat_exports; exports.flatRounded = _chunkRGJ6MZAYjs.flat_rounded_exports; exports.formatCardNumber = _chunkCFPQINKUjs.formatCardNumber; exports.getCardLengthRange = _chunkCFPQINKUjs.getCardLengthRange; exports.getCardType = _chunkCFPQINKUjs.getCardType; exports.getCardsByCountry = _chunkCFPQINKUjs.getCardsByCountry; exports.isCardNumberPotentiallyValid = _chunkCFPQINKUjs.isCardNumberPotentiallyValid; exports.logo = _chunkZ6XF6SI7js.logo_exports; exports.logoBorder = _chunk6XRDD3IFjs.logo_border_exports; exports.maskCardNumber = _chunkCFPQINKUjs.maskCardNumber; exports.mono = _chunkY7EIZLSHjs.mono_exports; exports.monoOutline = _chunkYF2USNEIjs.mono_outline_exports; exports.sanitizeCardNumber = _chunkCFPQINKUjs.sanitizeCardNumber; exports.validateCardForType = _chunkCFPQINKUjs.validateCardForType; exports.validateCardNumber = _chunkCFPQINKUjs.validateCardNumber;