UNPKG

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
"use strict";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;