Showing preview only (211K chars total). Download the full file or copy to clipboard to get everything.
Repository: jessepollak/card
Branch: master
Commit: fb006e9773b5
Files: 50
Total size: 197.9 KB
Directory structure:
gitextract_km5b62gn/
├── .github/
│ └── dependabot.yml
├── .gitignore
├── .gitmodules
├── .npmignore
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── bower.json
├── dist/
│ ├── card.css
│ ├── card.js
│ ├── card.js.LICENSE.txt
│ ├── jquery.card.js
│ └── jquery.card.js.LICENSE.txt
├── package.json
├── public/
│ └── index.html
├── src/
│ ├── coffee/
│ │ ├── card.coffee
│ │ └── jquery.card.coffee
│ └── scss/
│ ├── _mixins.scss
│ ├── browsers/
│ │ ├── _ie.scss
│ │ └── _safari.scss
│ ├── card.scss
│ ├── cards/
│ │ ├── _amex.scss
│ │ ├── _card.scss
│ │ ├── _dankort.scss
│ │ ├── _dinersclub.scss
│ │ ├── _discover.scss
│ │ ├── _elo.scss
│ │ ├── _hipercard.scss
│ │ ├── _jcb.scss
│ │ ├── _maestro.scss
│ │ ├── _mastercard.scss
│ │ ├── _troy.scss
│ │ ├── _unionpay.scss
│ │ ├── _visa.scss
│ │ └── _visaelectron.scss
│ └── logos/
│ ├── _amex.scss
│ ├── _dankort.scss
│ ├── _dinersclub.scss
│ ├── _discover.scss
│ ├── _elo.scss
│ ├── _hipercard.scss
│ ├── _jcb.scss
│ ├── _logo.scss
│ ├── _maestro.scss
│ ├── _mastercard.scss
│ ├── _troy.scss
│ ├── _unionpay.scss
│ ├── _visa.scss
│ └── _visaelectron.scss
└── webpack.config.js
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
- package-ecosystem: "npm"
directory: "/"
schedule:
interval: "daily"
================================================
FILE: .gitignore
================================================
bower_components
.tmp
.idea
coverage
node_modules
lib
================================================
FILE: .gitmodules
================================================
[submodule "src/scss/bourbon"]
path = src/scss/bourbon
url = https://github.com/thoughtbot/bourbon.git
[submodule "src/coffee/payment"]
path = src/coffee/payment
url = https://github.com/jessepollak/payment
================================================
FILE: .npmignore
================================================
# Automatically ignored per:
# https://www.npmjs.org/doc/developers.html#Keeping-files-out-of-your-package
#
# .*.swp
# ._*
# .DS_Store
# .git
# .hg
# .lock-wscript
# .svn
# .wafpickle-*
# CVS
# npm-debug.log
# node_modules
*.seed
*.log
*.csv
*.dat
*.out
*.pid
*.gz
*.orig
*.jql.js
work
build
src
test
spec
pids
logs
results
coverage
lib-cov
html-report
xunit.xml
.project
.idea
.settings
.iml
*.sublime-workspace
*.sublime-project
ehthumbs.db
Icon?
Thumbs.db
.AppleDouble
.LSOverride
.Spotlight-V100
.Trashes
================================================
FILE: CONTRIBUTING.md
================================================
# Welcome
Welcome to the Card contributor guidelines. We are *so happy to have you*. No matter who you are or what your contributing background is, we want this to be a safe, fun place for you to help out.
Card follows the [Clef code of conduct](https://github.com/clef/code-of-conduct) and violations are taken very seriously. If you seem something wrong, please don't hesitate to reach out to [@jessepollak](http://twitter.com/jessepollak) through their email on Github.
There is also a strict *no meanness* rule. At every step, please be kind and inclusive, even if people are asking not-so-informed questions.
# How do I set up for development?
Here's how you can get started developing locally:
$ git clone --recursive https://github.com/jessepollak/card.git
$ cd card
$ git submodule init && git submodule update
$ npm install
$ npm start
Now, if you go to localhost:8080/example in your browser, you should see the demo page.
# How to contribute
Here are the basic steps to get started contributing:
1. Fork then clone the repo and get development running on your computer. You can find instructions for setting up your development environment above.
2. Replicate the issue you're trying to fix or spec out the feature you're trying to add. Understanding the scope of what you're fixing or adding is important and upfront thought helps.
3. Change the code to fix the bug or add the feature. All changes should happen in the relevant `*.coffee` and `*.scss` files. All `*.js` files are automatically build.
4. Verify that your fix or feature works.
5. Run `NODE_ENV=production gulp build` to build your changes in the production build
6. Commit your changes with an informative description
7. Open a pull request to [the primary repo](https://github.com/jessepollak/card) with your new commit and a descriptive message about what the PR does.
# What can I contribute?
Check out the [issues](http://github.com/jessepollak/card/issues) for a comprehensive list of unfixed bugs and desired features.
## Are you new?
If you're new to open source software, it can be really scary to get started. Believe me, we've all been there.
To make it a little less scary, we've tagged a bunch of issues with `good-first-PR` tags. These issues or features are ones that we think will be approachable for a new contributor to the project (or to open source in general). They have a ton of information in the issue that should make it easy to get started.
If you want to tackle one of these issues, we are here to help you! Ping [@jessepollak](http://twitter.com/jessepollak) and he'll walk you through everything you need to know to get started.
================================================
FILE: LICENSE
================================================
Copyright (c) 2014 Jesse Pollak
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: README.md
================================================

# Card - check out the **[demo](https://jessepollak.github.io/card)**
### A better credit card form in one line of code
Card will take *any* credit card form and make it the best part of the checkout process (without you changing anything). Everything is created with pure CSS, HTML, and Javascript — no images required.

## Usage (without jQuery)
To use, you'll need to include the Card JavaScript files into your HTML, no CSS link is necessary as the JavaScript file does this for you. You can find the necessary file at `/dist/card.js` and include it in your HTML like so.
```html
<!-- at the end of BODY -->
<!-- CSS is included via this JavaScript file -->
<script src="/path/to/card.js"></script>
```
Once you've included those files, you can initialize Card.
```javascript
var card = new Card({
// a selector or DOM element for the form where users will
// be entering their information
form: 'form', // *required*
// a selector or DOM element for the container
// where you want the card to appear
container: '.card-wrapper', // *required*
formSelectors: {
numberInput: 'input#number', // optional — default input[name="number"]
expiryInput: 'input#expiry', // optional — default input[name="expiry"]
cvcInput: 'input#cvc', // optional — default input[name="cvc"]
nameInput: 'input#name' // optional - defaults input[name="name"]
},
width: 200, // optional — default 350px
formatting: true, // optional - default true
// Strings for translation - optional
messages: {
validDate: 'valid\ndate', // optional - default 'valid\nthru'
monthYear: 'mm/yyyy', // optional - default 'month/year'
},
// Default placeholders for rendered fields - optional
placeholders: {
number: '•••• •••• •••• ••••',
name: 'Full Name',
expiry: '••/••',
cvc: '•••'
},
masks: {
cardNumber: '•' // optional - mask card number
},
// if true, will log helpful messages for setting up Card
debug: false // optional - default false
});
```
### Installing card from bower
If you're using bower, you can install card.js with:
bower install card --save
### Installing card from npm
If you're using npm, you can install card.js with:
npm install --save card
var $ = require("jquery");
// The current card.js code does not explictly require jQuery, but instead uses the global, so this line is needed.
window.jQuery = $;
var card = require("card");
### Using multiple inputs for one field
Card can be used in forms where you have multiple inputs that render to a single field (i.e. you have a first and last name input). To use Card with this functionality, just pass in a selector that selects the fields in the correct order. For example,
```html
<html>
<body>
<div class='card-wrapper'></div>
<!-- CSS is included via this JavaScript file -->
<script src="/path/to/card.js"></script>
<form id="cc-form">
<input type="text" name="number">
<input type="text" name="first-name"/>
<input type="text" name="last-name"/>
<input type="text" name="expiry"/>
<input type="text" name="cvc"/>
</form>
<script>
var card = new Card({
form: 'cc-form',
container: '.card-wrapper',
formSelectors: {
nameInput: 'input[name="first-name"], input[name="last-name"]'
}
});
</script>
</body>
</html>
```
### Rendering with different initial card placeholders
Card renders with default placeholders for card `name`, `number`, `expiry`, and `cvc`. To override these placeholders, you can pass in a `placeholders` object.
```html
<html>
<body>
<div class='card-wrapper'></div>
<!-- CSS is included via this JavaScript file -->
<script src="/path/to/card.js"></script>
<form id="cc-form">
<input type="text" name="number">
<input type="text" name="name"/>
<input type="text" name="expiry"/>
<input type="text" name="cvc"/>
</form>
<script>
var card = new Card({
form: 'cc-form',
container: '.card-wrapper',
placeholders: {
number: '**** **** **** ****',
name: 'Arya Stark',
expiry: '**/****',
cvc: '***'
}
});
</script>
</body>
</html>
```
### Translation
To render the card with the strings in a different language, you can pass in a `messages` object.
```html
<html>
<body>
<div class='card-wrapper'></div>
<!-- CSS is included via this JavaScript file -->
<script src="/path/to/card.js"></script>
<form id="cc-form">
<input type="text" name="number">
<input type="text" name="name"/>
<input type="text" name="expiry"/>
<input type="text" name="cvc"/>
</form>
<script>
var card = new Card({
form: 'cc-form',
container: '.card-wrapper',
messages: {
validDate: 'expire\ndate',
monthYear: 'mm/yy'
}
});
</script>
</body>
</html>
```
## Using with jQuery
To use with jQuery, you'll need to include the `jquery.card.js` file into your HTML. You can find the necessary file at `/dist/jquery.card.js` and include it in your HTML like so.
```html
<!-- at the end of BODY -->
<!-- CSS is included via this JavaScript file -->
<script src="/path/to/jquery.card.js"></script>
```
Once you've included those files, you can initialize Card with jQuery.
```javascript
$('form').card({
// a selector or DOM element for the container
// where you want the card to appear
container: '.card-wrapper', // *required*
// all of the other options from above
});
```
## Using with other javascript libraries
Card has wrappers that make it easy to use with other javascript libraries:
### Angular 1.x
* [angular-card](https://github.com/gavruk/angular-card)
### Angular 2+
* [ngx-card](https://github.com/ihym/ngx-card)
### Ember
* [ember-credit-card](https://github.com/esbanarango/ember-credit-card)
### React
* [react-credit-card](https://github.com/JohnyDays/react-credit-card)
* [card-react](https://github.com/shatran/card-react)
* [react-plastic](https://github.com/armsteadj1/react-plastic) - static CSS only version.
### Vue
For use with VueJs, install card.js from npm:
```bash
npm install card --save
```
Add in your component an Div with class 'card-wrapper', just pass in a selector that selects the fields in the correct order. Import the component card.js and add the object in instance mounted like this example:
```html
<div class='card-wrapper'></div>
<form>
<input type="text" name="number">
<input type="text" name="first-name"/>
<input type="text" name="last-name"/>
<input type="text" name="expiry"/>
<input type="text" name="cvc"/>
</form>
<script>
import * as Card from "card";
export default {
name: "Form CreditCard",
mounted() {
new Card({
form: "form#cc-form",
container: ".card-wrapper",
formSelectors: {
numberInput: "input#cc-number",
expiryInput: "input#cc-expiration",
cvcInput: "input#cc-cvv",
nameInput: "input#cc-name"
},
width: 270,
formatting: true,
placeholders: {
number: "•••• •••• •••• ••••",
name: "Nome Completo",
expiry: "••/••",
cvc: "•••"
}
});
},
}
</script>
```
## Development
To contribute, follow this steps:
```bash
$ git clone --recursive https://github.com/jessepollak/card.git
$ cd card
$ git submodule init && git submodule update
$ npm install
$ npm run development
```
Now, if you go to localhost:8080/example in your browser, you should see the demo page.
## Places using Card
Card is used in the wild in these places:
* [InspectAll](http://www.inspectall.com/)
* [PennyWhale](https://www.pennywhale.com/)
* [MakeSpace](https://www.makespace.com/)
* [Blumpa](http://www.blumpa.com/)
* [CourseLoads](http://www.courseloads.com/)
* [PubNub](http://pubnub.com/)
* [GigSalad](https://www.gigsalad.com)
* [Boligninja](http://www.boligninja.dk)
* [EasyCarros](http://www.easycarros.com/)
* [Sintelle](http://www.sintelleparapharmacie.com/)
* [Wevorce](http://wevorce.com/)
* [PayumServer](https://github.com/Payum/PayumServer)
* [Paribus](https://paribus.co)
* [Bizzabo](https://www.bizzabo.com)
* [Tortuba](https://www.tortuba.com)
* [Netlify](https://www.netlify.com)
* [The Spice House](https://www.thespicehouse.com/)
* [Touts](https://www.touts.com.br/)
* [Ryman Limited](http://www.ryman.co.uk)
* [Robert Dyas](http://www.robertdyas.co.uk)
* [ROKA](https://www.rokahub.com)
* [LeSalon](https://lesalon.com)
* [Kenyan Directorate Of Immigration And Citizen Service](https://dis.ecitizen.go.ke)
Are you using Card in production? If so, we'd love to link to you from this page. Open a PR or drop [@jessepollak](http://twitter.com/jessepollak) a line on [Twitter](http://twitter.com/jessepollak) and we'll add you right away!
## Project scope
The project scope is to improve the capture of payment cards on websites. Issues and fixes related to the user interface and validating of payment cards are in scope.
For questions on how to use Card in your particular project, please ask on Stack Overflow or similar forum.
## Donations
If you'd like to donate to help support development of Card, send Bitcoin directly to `17NUKd3v7GWben18kGhmFafa4ZpWrXpQSC` or through Coinbase [here](https://coinbase.com/jessepollak).
================================================
FILE: bower.json
================================================
{
"name": "card",
"homepage": "https://github.com/jessepollak/card",
"authors": ["Jesse Pollak <jpollak92@gmail.com>"],
"description": "Card let's you add an interactive, CSS3 credit card animation to your credit card form to help your users through the process.",
"main": ["dist/card.js"],
"keywords": ["card", "credit", "card", "form"],
"dependencies": {
"jquery": ">=1.5"
},
"license": "MIT",
"ignore": ["**/.*", "node_modules", "example", "test", "tests"],
"version": "2.5.0"
}
================================================
FILE: dist/card.css
================================================
.jp-card.jp-card-safari.jp-card-identified .jp-card-front:before,.jp-card.jp-card-safari.jp-card-identified .jp-card-back:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}.jp-card.jp-card-ie-10.jp-card-flipped,.jp-card.jp-card-ie-11.jp-card-flipped{-webkit-transform:0deg;-moz-transform:0deg;-ms-transform:0deg;-o-transform:0deg;transform:0deg}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-front,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-front{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back:after{left:18%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-cvc,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-cvc{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg);left:5%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny{left:84%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny:after{left:-480%;-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card.jp-card-ie-10.jp-card-amex .jp-card-back,.jp-card.jp-card-ie-11.jp-card-amex .jp-card-back{display:none}.jp-card-logo{height:36px;width:60px;font-style:italic}.jp-card-logo,.jp-card-logo:before,.jp-card-logo:after{box-sizing:border-box}.jp-card-logo.jp-card-amex{text-transform:uppercase;font-size:4px;font-weight:bold;color:white;background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);border:1px solid #EEE}.jp-card-logo.jp-card-amex:before,.jp-card-logo.jp-card-amex:after{width:28px;display:block;position:absolute;left:16px}.jp-card-logo.jp-card-amex:before{height:28px;content:"american";top:3px;text-align:left;padding-left:2px;padding-top:11px;background:#267AC3}.jp-card-logo.jp-card-amex:after{content:"express";bottom:11px;text-align:right;padding-right:2px}.jp-card.jp-card-amex.jp-card-flipped{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:before,.jp-card.jp-card-amex.jp-card-identified .jp-card-back:before{background-color:#108168}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-logo.jp-card-amex{opacity:1}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-cvc{visibility:visible}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:after{opacity:1}.jp-card-logo.jp-card-discover{background:#f60;color:#111;text-transform:uppercase;font-style:normal;font-weight:bold;font-size:10px;text-align:center;overflow:hidden;z-index:1;padding-top:9px;letter-spacing:.03em;border:1px solid #EEE}.jp-card-logo.jp-card-discover:before,.jp-card-logo.jp-card-discover:after{content:" ";display:block;position:absolute}.jp-card-logo.jp-card-discover:before{background:white;width:200px;height:200px;border-radius:200px;bottom:-5%;right:-80%;z-index:-1}.jp-card-logo.jp-card-discover:after{width:8px;height:8px;border-radius:4px;top:10px;left:27px;background-color:#f60;background-image:-webkit-radial-gradient(#f60,#fff);background-image:radial-gradient( #f60,#fff);content:"network";font-size:4px;line-height:24px;text-indent:-7px}.jp-card .jp-card-front .jp-card-logo.jp-card-discover{right:12%;top:18%}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:before,.jp-card.jp-card-discover.jp-card-identified .jp-card-back:before{background-color:#86B8CF}.jp-card.jp-card-discover.jp-card-identified .jp-card-logo.jp-card-discover{opacity:1}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:after{-webkit-transition:400ms;-moz-transition:400ms;transition:400ms;content:" ";display:block;background-color:#f60;background-image:-webkit-linear-gradient(#f60,#ffa366,#f60);background-image:linear-gradient(#f60,#ffa366,#f60);height:50px;width:50px;border-radius:25px;position:absolute;left:100%;top:15%;margin-left:-25px;box-shadow:inset 1px 1px 3px 1px rgba(0,0,0,0.5)}.jp-card-logo.jp-card-unionpay{width:60px;display:block;height:40px;background:#e21836;-webkit-transform:skew(-15deg);-moz-transform:skew(20deg);-o-transform:skew(20deg);border-radius:5px;font-size:10px;z-index:1;line-height:33px;color:#fff;text-align:center;font-family:"Sans-serif", "Microsoft Yahei", "\5FAE\8F6F\96C5\9ED1", "Hiragino Sans", "Gulim", "\5B8B\4F53";font-weight:bold}.jp-card-logo.jp-card-unionpay:after,.jp-card-logo.jp-card-unionpay:before{display:block;margin:0 auto;position:absolute;height:40px;top:0;z-index:-1}.jp-card-logo.jp-card-unionpay:before{content:" ";width:28px;background:#00447c;left:14px;border-top-left-radius:5px;border-bottom-left-radius:5px}.jp-card-logo.jp-card-unionpay:after{content:"银联";width:26px;background:#007b84;left:34px;border-radius:5px;font-size:10px;line-height:54px;text-indent:-17px}.jp-card.jp-card-unionpay.jp-card-identified .jp-card-back:before,.jp-card.jp-card-unionpay.jp-card-identified .jp-card-front:before{background-color:#987c00}.jp-card.jp-card-unionpay.jp-card-identified .jp-card-logo.jp-card-unionpay{opacity:1}.jp-card-logo.jp-card-visa{text-transform:uppercase;color:white;text-align:center;font-weight:bold;font-size:24px;line-height:18px;margin-top:5px}.jp-card-logo.jp-card-visa:before,.jp-card-logo.jp-card-visa:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visa:before{position:absolute;left:-4px;width:0;height:0;border-style:solid;border-width:0 12px 6px 0;border-color:transparent #ffffff transparent transparent}.jp-card.jp-card-visa.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visa.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visa.jp-card-identified .jp-card-logo.jp-card-visa{opacity:1;box-shadow:none}.jp-card-logo.jp-card-visaelectron{background:white;text-transform:uppercase;color:#1A1876;text-align:center;font-weight:bold;font-size:15px;line-height:18px}.jp-card-logo.jp-card-visaelectron:before,.jp-card-logo.jp-card-visaelectron:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visaelectron:before{background:#1A1876}.jp-card-logo.jp-card-visaelectron:after{background:#E79800}.jp-card-logo.jp-card-visaelectron .elec{float:right;font-family:arial;font-size:9px;margin-right:1px;margin-top:-5px;text-transform:none}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-logo.jp-card-visaelectron{opacity:1}.jp-card-logo.jp-card-mastercard{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:9px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-mastercard:before,.jp-card-logo.jp-card-mastercard:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-mastercard:before{left:0;background:#EB001B;z-index:-1;opacity:0.9}.jp-card-logo.jp-card-mastercard:after{right:0;background:#FF5F00;z-index:-2}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front .jp-card-logo.jp-card-mastercard,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back .jp-card-logo.jp-card-mastercard{box-shadow:none}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front:before,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back:before{background-color:#0061A8}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-logo.jp-card-mastercard{opacity:1}.jp-card-logo.jp-card-maestro{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:14px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-maestro:before,.jp-card-logo.jp-card-maestro:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-maestro:before{left:0;background:#EB001B;z-index:-2}.jp-card-logo.jp-card-maestro:after{right:0;background:#00A2E5;z-index:-1;opacity:0.8}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front .jp-card-logo.jp-card-maestro,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back .jp-card-logo.jp-card-maestro{box-shadow:none}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front:before,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back:before{background-color:#0B2C5F}.jp-card.jp-card-maestro.jp-card-identified .jp-card-logo.jp-card-maestro{opacity:1}.jp-card-logo.jp-card-dankort{width:60px;height:36px;padding:3px;border-radius:8px;border:#000 1px solid;background-color:#fff}.jp-card-logo.jp-card-dankort .dk{position:relative;width:100%;height:100%;overflow:hidden}.jp-card-logo.jp-card-dankort .dk:before{background-color:#ED1C24;content:'';position:absolute;width:100%;height:100%;display:block;border-radius:6px}.jp-card-logo.jp-card-dankort .dk:after{content:'';position:absolute;top:50%;margin-top:-7.7px;right:0;width:0;height:0;border-style:solid;border-width:7px 7px 10px 0;border-color:transparent #ED1C24 transparent transparent;z-index:1}.jp-card-logo.jp-card-dankort .d,.jp-card-logo.jp-card-dankort .k{position:absolute;top:50%;width:50%;display:block;height:15.4px;margin-top:-7.7px;background:white}.jp-card-logo.jp-card-dankort .d{left:0;border-radius:0 8px 10px 0}.jp-card-logo.jp-card-dankort .d:before{content:'';position:absolute;top:50%;left:50%;display:block;background:#ED1C24;border-radius:2px 4px 6px 0px;height:5px;width:7px;margin:-3px 0 0 -4px}.jp-card-logo.jp-card-dankort .k{right:0}.jp-card-logo.jp-card-dankort .k:before,.jp-card-logo.jp-card-dankort .k:after{content:'';position:absolute;right:50%;width:0;height:0;border-style:solid;margin-right:-1px}.jp-card-logo.jp-card-dankort .k:before{top:0;border-width:8px 5px 0 0;border-color:#ED1C24 transparent transparent transparent}.jp-card-logo.jp-card-dankort .k:after{bottom:0;border-width:0 5px 8px 0;border-color:transparent transparent #ED1C24 transparent}.jp-card.jp-card-dankort.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dankort.jp-card-identified .jp-card-back:before{background-color:#0055C7}.jp-card.jp-card-dankort.jp-card-identified .jp-card-logo.jp-card-dankort{opacity:1}.jp-card-logo.jp-card-elo{height:50px;width:50px;border-radius:100%;background:black;color:white;text-align:center;text-transform:lowercase;font-size:21px;font-style:normal;letter-spacing:1px;font-weight:bold;padding-top:13px}.jp-card-logo.jp-card-elo .e,.jp-card-logo.jp-card-elo .l,.jp-card-logo.jp-card-elo .o{display:inline-block;position:relative}.jp-card-logo.jp-card-elo .e{-webkit-transform:rotate(-15deg);-moz-transform:rotate(-15deg);-ms-transform:rotate(-15deg);-o-transform:rotate(-15deg);transform:rotate(-15deg)}.jp-card-logo.jp-card-elo .o{position:relative;display:inline-block;width:12px;height:12px;right:0;top:7px;border-radius:100%;background-image:-webkit-linear-gradient( #ff0 50%,red 50%);background-image:linear-gradient( #ff0 50%,red 50%);-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);text-indent:-9999px}.jp-card-logo.jp-card-elo .o:before{content:"";position:absolute;width:49%;height:49%;background:black;border-radius:100%;text-indent:-99999px;top:25%;left:25%}.jp-card.jp-card-elo.jp-card-identified .jp-card-front:before,.jp-card.jp-card-elo.jp-card-identified .jp-card-back:before{background-color:#6F6969}.jp-card.jp-card-elo.jp-card-identified .jp-card-logo.jp-card-elo{opacity:1}.jp-card-logo.jp-card-jcb{border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px;background-color:white;font-style:normal;color:white;width:50px;padding:2px 0 0 2px}.jp-card-logo.jp-card-jcb>div{width:15px;margin-right:1px;display:inline-block;text-align:center;text-shadow:1px 1px rgba(0,0,0,0.6);border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px}.jp-card-logo.jp-card-jcb>div:before,.jp-card-logo.jp-card-jcb>div:after{content:" ";display:block;height:8px}.jp-card-logo.jp-card-jcb>div.j{background-color:#000063;background-image:-webkit-linear-gradient(left, #000063,#008cff);background-image:linear-gradient(to right,#000063,#008cff)}.jp-card-logo.jp-card-jcb>div.c{background-color:#630000;background-image:-webkit-linear-gradient(left, #630000,#ff008d);background-image:linear-gradient(to right,#630000,#ff008d)}.jp-card-logo.jp-card-jcb>div.b{background-color:#006300;background-image:-webkit-linear-gradient(left, #006300,lime);background-image:linear-gradient(to right,#006300,lime)}.jp-card.jp-card-jcb.jp-card-identified .jp-card-front:before,.jp-card.jp-card-jcb.jp-card-identified .jp-card-back:before{background-color:#CB8000}.jp-card.jp-card-jcb.jp-card-identified .jp-card-logo.jp-card-jcb{opacity:1;box-shadow:none}.jp-card-logo.jp-card-dinersclub{font-family:serif;height:40px;width:100px;color:white;font-size:17px;font-style:normal;letter-spacing:1px}.jp-card-logo.jp-card-dinersclub::before,.jp-card-logo.jp-card-dinersclub::after{display:block;position:relative}.jp-card-logo.jp-card-dinersclub::before{content:'Diners Club'}.jp-card-logo.jp-card-dinersclub::after{content:'International';text-transform:uppercase;font-size:0.6em}.jp-card.jp-card-dinersclub .jp-card-front .jp-card-logo{box-shadow:none !important}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-back:before{background-color:#999}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-logo.jp-card-dinersclub{opacity:1}.jp-card-logo.jp-card-hipercard{height:20px;width:100px;color:white;font-size:21px;font-style:italic;font-weight:bold}.jp-card-logo.jp-card-hipercard::before,.jp-card-logo.jp-card-hipercard::after{display:block;position:relative}.jp-card.jp-card-hipercard.jp-card-identified .jp-card-front:before,.jp-card.jp-card-hipercard.jp-card-identified .jp-card-back:before{background-color:#770304}.jp-card.jp-card-hipercard.jp-card-identified .jp-card-logo.jp-card-hipercard{opacity:1;box-shadow:none}.jp-card-logo.jp-card-troy{text-transform:lowercase;color:#fff;text-align:center;font-weight:700;font-size:24px;line-height:18px;margin-top:5px}.jp-card-logo.jp-card-troy:before,.jp-card-logo.jp-card-troy:after{content:\"\";display:block;width:26%;height:6%;background:#22b8c3;right:32%;top:24%;position:absolute;transform:rotate(105deg)}.jp-card.jp-card-troy.jp-card-identified .jp-card-front:before,.jp-card.jp-card-troy.jp-card-identified .jp-card-back:before{background-color:#01adba}.jp-card.jp-card-troy.jp-card-identified .jp-card-logo.jp-card-troy{opacity:1;box-shadow:none}.jp-card-container{-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px;width:350px;max-width:100%;height:200px;margin:auto;z-index:1;position:relative}.jp-card{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1;position:relative;width:100%;height:100%;min-width:315px;border-radius:10px;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear}.jp-card>*,.jp-card>*:after,.jp-card>*:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}.jp-card.jp-card-flipped{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-back,.jp-card .jp-card-front{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;border-radius:10px;background:#ddd}.jp-card .jp-card-back:before,.jp-card .jp-card-front:before{content:" ";display:block;position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;border-radius:10px;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease}.jp-card .jp-card-back:after,.jp-card .jp-card-front:after{content:" ";display:block}.jp-card .jp-card-back .jp-card-display,.jp-card .jp-card-front .jp-card-display{color:#fff;font-weight:normal;opacity:0.5;-webkit-transition:opacity 400ms linear;-moz-transition:opacity 400ms linear;transition:opacity 400ms linear}.jp-card .jp-card-back .jp-card-display.jp-card-focused,.jp-card .jp-card-front .jp-card-display.jp-card-focused{opacity:1;font-weight:700}.jp-card .jp-card-back .jp-card-cvc,.jp-card .jp-card-front .jp-card-cvc{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:14px}.jp-card .jp-card-back .jp-card-shiny,.jp-card .jp-card-front .jp-card-shiny{width:50px;height:35px;border-radius:5px;background:#ccc;position:relative}.jp-card .jp-card-back .jp-card-shiny:before,.jp-card .jp-card-front .jp-card-shiny:before{content:" ";display:block;width:70%;height:60%;border-top-right-radius:5px;border-bottom-right-radius:5px;background:#d9d9d9;position:absolute;top:20%}.jp-card .jp-card-front .jp-card-logo{position:absolute;opacity:0;right:5%;top:8%;-webkit-transition:400ms;-moz-transition:400ms;transition:400ms}.jp-card .jp-card-front .jp-card-lower{width:80%;position:absolute;left:10%;bottom:30px}@media only screen and (max-width: 480px){.jp-card .jp-card-front .jp-card-lower{width:90%;left:5%}}.jp-card .jp-card-front .jp-card-lower .jp-card-cvc{visibility:hidden;float:right;position:relative;bottom:5px}.jp-card .jp-card-front .jp-card-lower .jp-card-number{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:24px;clear:both;margin-bottom:30px}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;letter-spacing:0;position:relative;float:right;width:25%}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after,.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:7px;white-space:pre;display:block;opacity:0.5}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before{content:attr(data-before);margin-bottom:2px;font-size:7px;text-transform:uppercase}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after{position:absolute;content:attr(data-after);text-align:right;right:100%;margin-right:5px;margin-top:2px;bottom:0}.jp-card .jp-card-front .jp-card-lower .jp-card-name{text-transform:uppercase;font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:20px;max-height:45px;position:absolute;bottom:0;width:190px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:horizontal;overflow:hidden;text-overflow:ellipsis}.jp-card .jp-card-back{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-back .jp-card-bar{background-color:#444;background-image:-webkit-linear-gradient(#444,#333);background-image:linear-gradient(#444,#333);width:100%;height:20%;position:absolute;top:10%}.jp-card .jp-card-back:after{content:" ";display:block;background-color:#fff;background-image:-webkit-linear-gradient(#fff,#fff);background-image:linear-gradient(#fff,#fff);width:80%;height:16%;position:absolute;top:40%;left:2%}.jp-card .jp-card-back .jp-card-cvc{position:absolute;top:40%;left:85%;-webkit-transition-delay:600ms;-moz-transition-delay:600ms;transition-delay:600ms}.jp-card .jp-card-back .jp-card-shiny{position:absolute;top:66%;left:2%}.jp-card .jp-card-back .jp-card-shiny:after{content:"This card has been issued by Jesse Pollak and is licensed for anyone to use anywhere for free. It comes with no warranty. For support issues, please visit: github.com/jessepollak/card.";position:absolute;left:120%;top:5%;color:white;font-size:7px;width:230px;opacity:0.5}.jp-card.jp-card-identified{box-shadow:0 0 20px rgba(0,0,0,0.3)}.jp-card.jp-card-identified .jp-card-back,.jp-card.jp-card-identified .jp-card-front{background-color:#000;background-color:rgba(0,0,0,0.5)}.jp-card.jp-card-identified .jp-card-back:before,.jp-card.jp-card-identified .jp-card-front:before{-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease;background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);opacity:1}.jp-card.jp-card-identified .jp-card-back .jp-card-logo,.jp-card.jp-card-identified .jp-card-front .jp-card-logo{box-shadow:0 0 0 2px rgba(255,255,255,0.3)}.jp-card.jp-card-identified.no-radial-gradient .jp-card-back:before,.jp-card.jp-card-identified.no-radial-gradient .jp-card-front:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}@media (max-width: 450px){.card-wrapper{max-width:80vw;width:100%;margin:20px auto;overflow-x:hidden}.card-wrapper>.jp-card-container{transform:scale(0.625);transform-origin:left center}}
================================================
FILE: dist/card.js
================================================
/*! For license information please see card.js.LICENSE.txt */
var card;(()=>{var r={579:function(r,e,t){var a,n,o;t(346),n=t(202),t(28),o=t(907),a=function(){var r,e;class t{template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a){return e[t]}))}constructor(r){var e;this.maskCardNumber=this.maskCardNumber.bind(this),this.options=o(!0,this.defaults,r),this.options.form?(this.$el=n(this.options.form),this.options.container?(this.$container=n(this.options.container),(e=n.isDOMElement(this.$container)?this.$container:this.$container[0]).getAttribute(this.initializedDataAttr)||(e.setAttribute(this.initializedDataAttr,!0),this.render(),this.attachHandlers(),this.handleInitialPlaceholders())):console.log("Please provide a container")):console.log("Please provide a form")}render(){var r,e,t,a,i,d,c,p;for(t in n.append(this.$container,this.template(this.cardTemplate,o({},this.options.messages,this.options.placeholders))),i=this.options.cardSelectors)c=i[t],this[`$${t}`]=n.find(this.$container,c);for(t in d=this.options.formSelectors)c=d[t],c=this.options[t]?this.options[t]:c,!(a=n.find(this.$el,c)).length&&this.options.debug&&console.error(`Card can't find a ${t} in your form.`),this[`$${t}`]=a;if(this.options.formatting&&(Payment.formatCardNumber(this.$numberInput),Payment.formatCardCVC(this.$cvcInput),Payment.formatCardExpiry(this.$expiryInput)),this.options.width&&(r=n(this.options.cardSelectors.cardContainer)[0],e=parseInt(r.clientWidth||window.getComputedStyle(r).width),r.style.transform=`scale(${this.options.width/e})`),("undefined"!=typeof navigator&&null!==navigator?navigator.userAgent:void 0)&&-1!==(p=navigator.userAgent.toLowerCase()).indexOf("safari")&&-1===p.indexOf("chrome")&&n.addClass(this.$card,"jp-card-safari"),/MSIE 10\./i.test(navigator.userAgent)&&n.addClass(this.$card,"jp-card-ie-10"),/rv:11.0/i.test(navigator.userAgent))return n.addClass(this.$card,"jp-card-ie-11")}attachHandlers(){var e,t;return t=[this.validToggler("cardNumber")],this.options.masks.cardNumber&&t.push(this.maskCardNumber),r(this.$numberInput,this.$numberDisplay,{fill:!1,filters:t}),n.on(this.$numberInput,"payment.cardType",this.handle("setCardType")),(e=[function(r){return 1===r.length&&"0"===r[0]?"":r.replace(/(\s+)/g,"")}]).push(this.validToggler("cardExpiry")),r(this.$expiryInput,this.$expiryDisplay,{join:function(r){return 2===r[0].length||r[1]?"/":""},filters:e}),r(this.$cvcInput,this.$cvcDisplay,{filters:this.validToggler("cardCVC")}),n.on(this.$cvcInput,"focus",this.handle("flipCard")),n.on(this.$cvcInput,"blur",this.handle("unflipCard")),r(this.$nameInput,this.$nameDisplay,{fill:!1,filters:this.validToggler("cardHolderName"),join:" "})}handleInitialPlaceholders(){var r,e,t,a;for(e in a=[],t=this.options.formSelectors)t[e],(r=this[`$${e}`])instanceof NodeList&&(r=r[0]),n.val(r)?(n.trigger(r,"paste"),a.push(function(r){return setTimeout((function(){return n.trigger(r,"keyup")}))}(r))):a.push(void 0);return a}handle(r){return e=>{var t;return(t=Array.prototype.slice.call(arguments)).unshift(e.target),this.handlers[r].apply(this,t)}}validToggler(r){var e;return"cardExpiry"===r?e=function(r){var e;return e=Payment.fns.cardExpiryVal(r),Payment.fns.validateCardExpiry(e.month,e.year)}:"cardCVC"===r?e=r=>Payment.fns.validateCardCVC(r,this.cardType):"cardNumber"===r?e=function(r){return Payment.fns.validateCardNumber(r)}:"cardHolderName"===r&&(e=function(r){return""!==r}),(r,t,a)=>{var n;return n=e(r),this.toggleValidClass(t,n),this.toggleValidClass(a,n),r}}toggleValidClass(r,e){return n.toggleClass(r,this.options.classes.valid,e),n.toggleClass(r,this.options.classes.invalid,!e)}maskCardNumber(r,e,t){var a,n;return a=this.options.masks.cardNumber,(n=r.split(" ")).length>=3?(n.forEach((function(r,e){if(e!==n.length-1)return n[e]=n[e].replace(/\d/g,a)})),n.join(" ")):r.replace(/\d/g,a)}getCardType(){return Payment.fns.cardType(this.$numberInput[0].value)||"unknown"}}return t.prototype.initializedDataAttr="data-jp-card-initialized",t.prototype.cardTemplate='<div class="jp-card-container"><div class="jp-card"><div class="jp-card-front"><div class="jp-card-logo jp-card-elo"><div class="e">e</div><div class="l">l</div><div class="o">o</div></div><div class="jp-card-logo jp-card-visa">Visa</div><div class="jp-card-logo jp-card-visaelectron">Visa<div class="elec">Electron</div></div><div class="jp-card-logo jp-card-mastercard">Mastercard</div><div class="jp-card-logo jp-card-maestro">Maestro</div><div class="jp-card-logo jp-card-amex"></div><div class="jp-card-logo jp-card-discover">discover</div><div class="jp-card-logo jp-card-unionpay">UnionPay</div><div class="jp-card-logo jp-card-dinersclub"></div><div class="jp-card-logo jp-card-hipercard">Hipercard</div><div class="jp-card-logo jp-card-troy">troy</div><div class="jp-card-logo jp-card-dankort"><div class="dk"><div class="d"></div><div class="k"></div></div></div><div class="jp-card-logo jp-card-jcb"><div class="j">J</div><div class="c">C</div><div class="b">B</div></div><div class="jp-card-lower"><div class="jp-card-shiny"></div><div class="jp-card-cvc jp-card-display">{{cvc}}</div><div class="jp-card-number jp-card-display">{{number}}</div><div class="jp-card-name jp-card-display">{{name}}</div><div class="jp-card-expiry jp-card-display" data-before="{{monthYear}}" data-after="{{validDate}}">{{expiry}}</div></div></div><div class="jp-card-back"><div class="jp-card-bar"></div><div class="jp-card-cvc jp-card-display">{{cvc}}</div><div class="jp-card-shiny"></div></div></div></div>',t.prototype.cardTypes=["jp-card-amex","jp-card-dankort","jp-card-dinersclub","jp-card-discover","jp-card-unionpay","jp-card-jcb","jp-card-laser","jp-card-maestro","jp-card-mastercard","jp-card-troy","jp-card-unionpay","jp-card-visa","jp-card-visaelectron","jp-card-elo","jp-card-hipercard"],t.prototype.defaults={formatting:!0,formSelectors:{numberInput:'input[name="number"]',expiryInput:'input[name="expiry"]',cvcInput:'input[name="cvc"]',nameInput:'input[name="name"]'},cardSelectors:{cardContainer:".jp-card-container",card:".jp-card",numberDisplay:".jp-card-number",expiryDisplay:".jp-card-expiry",cvcDisplay:".jp-card-cvc",nameDisplay:".jp-card-name"},messages:{validDate:"valid\nthru",monthYear:"month/year"},placeholders:{number:"•••• •••• •••• ••••",cvc:"•••",expiry:"••/••",name:"Full Name"},masks:{cardNumber:!1},classes:{valid:"jp-card-valid",invalid:"jp-card-invalid"},debug:!1},t.prototype.handlers={setCardType:function(r,e){var t,a;if(t=e.data,a=new CustomEvent("card-type-changed",{detail:e.data}),document.dispatchEvent(a),!n.hasClass(this.$card,t))return n.removeClass(this.$card,"jp-card-unknown"),n.removeClass(this.$card,this.cardTypes.join(" ")),n.addClass(this.$card,`jp-card-${t}`),n.toggleClass(this.$card,"jp-card-identified","unknown"!==t),this.cardType=t},flipCard:function(){return n.addClass(this.$card,"jp-card-flipped")},unflipCard:function(){return n.removeClass(this.$card,"jp-card-flipped")}},r=function(r,t,a={}){var o,i,d;return a.fill=a.fill||!1,a.filters=a.filters||[],a.filters instanceof Array||(a.filters=[a.filters]),a.join=a.join||"","function"!=typeof a.join&&(o=a.join,a.join=function(){return o}),d=function(){var r,e,a;for(a=[],r=0,e=t.length;r<e;r++)i=t[r],a.push(i.textContent);return a}(),e(r,t,d,a),n.on(r,"focus",(function(){return n.addClass(t,"jp-card-focused")})),n.on(r,"blur",(function(){return n.removeClass(t,"jp-card-focused")})),n.on(r,"keyup change paste",(function(n){return e(r,t,d,a)})),r},e=function(r,e,t,a){var o,i,d,c,p,l,s,f,g,u,j,b;for(b=function(){var e,t,a;for(a=[],e=0,t=r.length;e<t;e++)o=r[e],a.push(n.val(o));return a}(),c=a.join(b),(b=b.join(c))===c&&(b=""),d=0,l=(u=a.filters).length;d<l;d++)b=(0,u[d])(b,r,e);for(j=[],i=p=0,s=e.length;p<s;i=++p)f=e[i],g=a.fill?b+t[i].substring(b.length):b||t[i],j.push(f.textContent=g);return j},t}.call(this),r.exports=a,t.g.Card=a},120:(r,e,t)=>{"use strict";t.d(e,{Z:()=>d});var a=t(81),n=t.n(a),o=t(645),i=t.n(o)()(n());i.push([r.id,'.jp-card.jp-card-safari.jp-card-identified .jp-card-front:before,.jp-card.jp-card-safari.jp-card-identified .jp-card-back:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}.jp-card.jp-card-ie-10.jp-card-flipped,.jp-card.jp-card-ie-11.jp-card-flipped{-webkit-transform:0deg;-moz-transform:0deg;-ms-transform:0deg;-o-transform:0deg;transform:0deg}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-front,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-front{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back:after{left:18%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-cvc,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-cvc{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg);left:5%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny{left:84%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny:after{left:-480%;-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card.jp-card-ie-10.jp-card-amex .jp-card-back,.jp-card.jp-card-ie-11.jp-card-amex .jp-card-back{display:none}.jp-card-logo{height:36px;width:60px;font-style:italic}.jp-card-logo,.jp-card-logo:before,.jp-card-logo:after{box-sizing:border-box}.jp-card-logo.jp-card-amex{text-transform:uppercase;font-size:4px;font-weight:bold;color:white;background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);border:1px solid #EEE}.jp-card-logo.jp-card-amex:before,.jp-card-logo.jp-card-amex:after{width:28px;display:block;position:absolute;left:16px}.jp-card-logo.jp-card-amex:before{height:28px;content:"american";top:3px;text-align:left;padding-left:2px;padding-top:11px;background:#267AC3}.jp-card-logo.jp-card-amex:after{content:"express";bottom:11px;text-align:right;padding-right:2px}.jp-card.jp-card-amex.jp-card-flipped{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:before,.jp-card.jp-card-amex.jp-card-identified .jp-card-back:before{background-color:#108168}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-logo.jp-card-amex{opacity:1}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-cvc{visibility:visible}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:after{opacity:1}.jp-card-logo.jp-card-discover{background:#f60;color:#111;text-transform:uppercase;font-style:normal;font-weight:bold;font-size:10px;text-align:center;overflow:hidden;z-index:1;padding-top:9px;letter-spacing:.03em;border:1px solid #EEE}.jp-card-logo.jp-card-discover:before,.jp-card-logo.jp-card-discover:after{content:" ";display:block;position:absolute}.jp-card-logo.jp-card-discover:before{background:white;width:200px;height:200px;border-radius:200px;bottom:-5%;right:-80%;z-index:-1}.jp-card-logo.jp-card-discover:after{width:8px;height:8px;border-radius:4px;top:10px;left:27px;background-color:#f60;background-image:-webkit-radial-gradient(#f60,#fff);background-image:radial-gradient( #f60,#fff);content:"network";font-size:4px;line-height:24px;text-indent:-7px}.jp-card .jp-card-front .jp-card-logo.jp-card-discover{right:12%;top:18%}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:before,.jp-card.jp-card-discover.jp-card-identified .jp-card-back:before{background-color:#86B8CF}.jp-card.jp-card-discover.jp-card-identified .jp-card-logo.jp-card-discover{opacity:1}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:after{-webkit-transition:400ms;-moz-transition:400ms;transition:400ms;content:" ";display:block;background-color:#f60;background-image:-webkit-linear-gradient(#f60,#ffa366,#f60);background-image:linear-gradient(#f60,#ffa366,#f60);height:50px;width:50px;border-radius:25px;position:absolute;left:100%;top:15%;margin-left:-25px;box-shadow:inset 1px 1px 3px 1px rgba(0,0,0,0.5)}.jp-card-logo.jp-card-unionpay{width:60px;display:block;height:40px;background:#e21836;-webkit-transform:skew(-15deg);-moz-transform:skew(20deg);-o-transform:skew(20deg);border-radius:5px;font-size:10px;z-index:1;line-height:33px;color:#fff;text-align:center;font-family:"Sans-serif", "Microsoft Yahei", "\\5FAE\\8F6F\\96C5\\9ED1", "Hiragino Sans", "Gulim", "\\5B8B\\4F53";font-weight:bold}.jp-card-logo.jp-card-unionpay:after,.jp-card-logo.jp-card-unionpay:before{display:block;margin:0 auto;position:absolute;height:40px;top:0;z-index:-1}.jp-card-logo.jp-card-unionpay:before{content:" ";width:28px;background:#00447c;left:14px;border-top-left-radius:5px;border-bottom-left-radius:5px}.jp-card-logo.jp-card-unionpay:after{content:"银联";width:26px;background:#007b84;left:34px;border-radius:5px;font-size:10px;line-height:54px;text-indent:-17px}.jp-card.jp-card-unionpay.jp-card-identified .jp-card-back:before,.jp-card.jp-card-unionpay.jp-card-identified .jp-card-front:before{background-color:#987c00}.jp-card.jp-card-unionpay.jp-card-identified .jp-card-logo.jp-card-unionpay{opacity:1}.jp-card-logo.jp-card-visa{text-transform:uppercase;color:white;text-align:center;font-weight:bold;font-size:24px;line-height:18px;margin-top:5px}.jp-card-logo.jp-card-visa:before,.jp-card-logo.jp-card-visa:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visa:before{position:absolute;left:-4px;width:0;height:0;border-style:solid;border-width:0 12px 6px 0;border-color:transparent #ffffff transparent transparent}.jp-card.jp-card-visa.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visa.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visa.jp-card-identified .jp-card-logo.jp-card-visa{opacity:1;box-shadow:none}.jp-card-logo.jp-card-visaelectron{background:white;text-transform:uppercase;color:#1A1876;text-align:center;font-weight:bold;font-size:15px;line-height:18px}.jp-card-logo.jp-card-visaelectron:before,.jp-card-logo.jp-card-visaelectron:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visaelectron:before{background:#1A1876}.jp-card-logo.jp-card-visaelectron:after{background:#E79800}.jp-card-logo.jp-card-visaelectron .elec{float:right;font-family:arial;font-size:9px;margin-right:1px;margin-top:-5px;text-transform:none}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-logo.jp-card-visaelectron{opacity:1}.jp-card-logo.jp-card-mastercard{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:9px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-mastercard:before,.jp-card-logo.jp-card-mastercard:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-mastercard:before{left:0;background:#EB001B;z-index:-1;opacity:0.9}.jp-card-logo.jp-card-mastercard:after{right:0;background:#FF5F00;z-index:-2}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front .jp-card-logo.jp-card-mastercard,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back .jp-card-logo.jp-card-mastercard{box-shadow:none}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front:before,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back:before{background-color:#0061A8}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-logo.jp-card-mastercard{opacity:1}.jp-card-logo.jp-card-maestro{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:14px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-maestro:before,.jp-card-logo.jp-card-maestro:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-maestro:before{left:0;background:#EB001B;z-index:-2}.jp-card-logo.jp-card-maestro:after{right:0;background:#00A2E5;z-index:-1;opacity:0.8}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front .jp-card-logo.jp-card-maestro,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back .jp-card-logo.jp-card-maestro{box-shadow:none}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front:before,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back:before{background-color:#0B2C5F}.jp-card.jp-card-maestro.jp-card-identified .jp-card-logo.jp-card-maestro{opacity:1}.jp-card-logo.jp-card-dankort{width:60px;height:36px;padding:3px;border-radius:8px;border:#000 1px solid;background-color:#fff}.jp-card-logo.jp-card-dankort .dk{position:relative;width:100%;height:100%;overflow:hidden}.jp-card-logo.jp-card-dankort .dk:before{background-color:#ED1C24;content:\'\';position:absolute;width:100%;height:100%;display:block;border-radius:6px}.jp-card-logo.jp-card-dankort .dk:after{content:\'\';position:absolute;top:50%;margin-top:-7.7px;right:0;width:0;height:0;border-style:solid;border-width:7px 7px 10px 0;border-color:transparent #ED1C24 transparent transparent;z-index:1}.jp-card-logo.jp-card-dankort .d,.jp-card-logo.jp-card-dankort .k{position:absolute;top:50%;width:50%;display:block;height:15.4px;margin-top:-7.7px;background:white}.jp-card-logo.jp-card-dankort .d{left:0;border-radius:0 8px 10px 0}.jp-card-logo.jp-card-dankort .d:before{content:\'\';position:absolute;top:50%;left:50%;display:block;background:#ED1C24;border-radius:2px 4px 6px 0px;height:5px;width:7px;margin:-3px 0 0 -4px}.jp-card-logo.jp-card-dankort .k{right:0}.jp-card-logo.jp-card-dankort .k:before,.jp-card-logo.jp-card-dankort .k:after{content:\'\';position:absolute;right:50%;width:0;height:0;border-style:solid;margin-right:-1px}.jp-card-logo.jp-card-dankort .k:before{top:0;border-width:8px 5px 0 0;border-color:#ED1C24 transparent transparent transparent}.jp-card-logo.jp-card-dankort .k:after{bottom:0;border-width:0 5px 8px 0;border-color:transparent transparent #ED1C24 transparent}.jp-card.jp-card-dankort.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dankort.jp-card-identified .jp-card-back:before{background-color:#0055C7}.jp-card.jp-card-dankort.jp-card-identified .jp-card-logo.jp-card-dankort{opacity:1}.jp-card-logo.jp-card-elo{height:50px;width:50px;border-radius:100%;background:black;color:white;text-align:center;text-transform:lowercase;font-size:21px;font-style:normal;letter-spacing:1px;font-weight:bold;padding-top:13px}.jp-card-logo.jp-card-elo .e,.jp-card-logo.jp-card-elo .l,.jp-card-logo.jp-card-elo .o{display:inline-block;position:relative}.jp-card-logo.jp-card-elo .e{-webkit-transform:rotate(-15deg);-moz-transform:rotate(-15deg);-ms-transform:rotate(-15deg);-o-transform:rotate(-15deg);transform:rotate(-15deg)}.jp-card-logo.jp-card-elo .o{position:relative;display:inline-block;width:12px;height:12px;right:0;top:7px;border-radius:100%;background-image:-webkit-linear-gradient( #ff0 50%,red 50%);background-image:linear-gradient( #ff0 50%,red 50%);-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);text-indent:-9999px}.jp-card-logo.jp-card-elo .o:before{content:"";position:absolute;width:49%;height:49%;background:black;border-radius:100%;text-indent:-99999px;top:25%;left:25%}.jp-card.jp-card-elo.jp-card-identified .jp-card-front:before,.jp-card.jp-card-elo.jp-card-identified .jp-card-back:before{background-color:#6F6969}.jp-card.jp-card-elo.jp-card-identified .jp-card-logo.jp-card-elo{opacity:1}.jp-card-logo.jp-card-jcb{border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px;background-color:white;font-style:normal;color:white;width:50px;padding:2px 0 0 2px}.jp-card-logo.jp-card-jcb>div{width:15px;margin-right:1px;display:inline-block;text-align:center;text-shadow:1px 1px rgba(0,0,0,0.6);border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px}.jp-card-logo.jp-card-jcb>div:before,.jp-card-logo.jp-card-jcb>div:after{content:" ";display:block;height:8px}.jp-card-logo.jp-card-jcb>div.j{background-color:#000063;background-image:-webkit-linear-gradient(left, #000063,#008cff);background-image:linear-gradient(to right,#000063,#008cff)}.jp-card-logo.jp-card-jcb>div.c{background-color:#630000;background-image:-webkit-linear-gradient(left, #630000,#ff008d);background-image:linear-gradient(to right,#630000,#ff008d)}.jp-card-logo.jp-card-jcb>div.b{background-color:#006300;background-image:-webkit-linear-gradient(left, #006300,lime);background-image:linear-gradient(to right,#006300,lime)}.jp-card.jp-card-jcb.jp-card-identified .jp-card-front:before,.jp-card.jp-card-jcb.jp-card-identified .jp-card-back:before{background-color:#CB8000}.jp-card.jp-card-jcb.jp-card-identified .jp-card-logo.jp-card-jcb{opacity:1;box-shadow:none}.jp-card-logo.jp-card-dinersclub{font-family:serif;height:40px;width:100px;color:white;font-size:17px;font-style:normal;letter-spacing:1px}.jp-card-logo.jp-card-dinersclub::before,.jp-card-logo.jp-card-dinersclub::after{display:block;position:relative}.jp-card-logo.jp-card-dinersclub::before{content:\'Diners Club\'}.jp-card-logo.jp-card-dinersclub::after{content:\'International\';text-transform:uppercase;font-size:0.6em}.jp-card.jp-card-dinersclub .jp-card-front .jp-card-logo{box-shadow:none !important}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-back:before{background-color:#999}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-logo.jp-card-dinersclub{opacity:1}.jp-card-logo.jp-card-hipercard{height:20px;width:100px;color:white;font-size:21px;font-style:italic;font-weight:bold}.jp-card-logo.jp-card-hipercard::before,.jp-card-logo.jp-card-hipercard::after{display:block;position:relative}.jp-card.jp-card-hipercard.jp-card-identified .jp-card-front:before,.jp-card.jp-card-hipercard.jp-card-identified .jp-card-back:before{background-color:#770304}.jp-card.jp-card-hipercard.jp-card-identified .jp-card-logo.jp-card-hipercard{opacity:1;box-shadow:none}.jp-card-logo.jp-card-troy{text-transform:lowercase;color:#fff;text-align:center;font-weight:700;font-size:24px;line-height:18px;margin-top:5px}.jp-card-logo.jp-card-troy:before,.jp-card-logo.jp-card-troy:after{content:\\"\\";display:block;width:26%;height:6%;background:#22b8c3;right:32%;top:24%;position:absolute;transform:rotate(105deg)}.jp-card.jp-card-troy.jp-card-identified .jp-card-front:before,.jp-card.jp-card-troy.jp-card-identified .jp-card-back:before{background-color:#01adba}.jp-card.jp-card-troy.jp-card-identified .jp-card-logo.jp-card-troy{opacity:1;box-shadow:none}.jp-card-container{-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px;width:350px;max-width:100%;height:200px;margin:auto;z-index:1;position:relative}.jp-card{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1;position:relative;width:100%;height:100%;min-width:315px;border-radius:10px;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear}.jp-card>*,.jp-card>*:after,.jp-card>*:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}.jp-card.jp-card-flipped{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-back,.jp-card .jp-card-front{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;border-radius:10px;background:#ddd}.jp-card .jp-card-back:before,.jp-card .jp-card-front:before{content:" ";display:block;position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;border-radius:10px;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease}.jp-card .jp-card-back:after,.jp-card .jp-card-front:after{content:" ";display:block}.jp-card .jp-card-back .jp-card-display,.jp-card .jp-card-front .jp-card-display{color:#fff;font-weight:normal;opacity:0.5;-webkit-transition:opacity 400ms linear;-moz-transition:opacity 400ms linear;transition:opacity 400ms linear}.jp-card .jp-card-back .jp-card-display.jp-card-focused,.jp-card .jp-card-front .jp-card-display.jp-card-focused{opacity:1;font-weight:700}.jp-card .jp-card-back .jp-card-cvc,.jp-card .jp-card-front .jp-card-cvc{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:14px}.jp-card .jp-card-back .jp-card-shiny,.jp-card .jp-card-front .jp-card-shiny{width:50px;height:35px;border-radius:5px;background:#ccc;position:relative}.jp-card .jp-card-back .jp-card-shiny:before,.jp-card .jp-card-front .jp-card-shiny:before{content:" ";display:block;width:70%;height:60%;border-top-right-radius:5px;border-bottom-right-radius:5px;background:#d9d9d9;position:absolute;top:20%}.jp-card .jp-card-front .jp-card-logo{position:absolute;opacity:0;right:5%;top:8%;-webkit-transition:400ms;-moz-transition:400ms;transition:400ms}.jp-card .jp-card-front .jp-card-lower{width:80%;position:absolute;left:10%;bottom:30px}@media only screen and (max-width: 480px){.jp-card .jp-card-front .jp-card-lower{width:90%;left:5%}}.jp-card .jp-card-front .jp-card-lower .jp-card-cvc{visibility:hidden;float:right;position:relative;bottom:5px}.jp-card .jp-card-front .jp-card-lower .jp-card-number{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:24px;clear:both;margin-bottom:30px}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;letter-spacing:0;position:relative;float:right;width:25%}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after,.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:7px;white-space:pre;display:block;opacity:0.5}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before{content:attr(data-before);margin-bottom:2px;font-size:7px;text-transform:uppercase}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after{position:absolute;content:attr(data-after);text-align:right;right:100%;margin-right:5px;margin-top:2px;bottom:0}.jp-card .jp-card-front .jp-card-lower .jp-card-name{text-transform:uppercase;font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:20px;max-height:45px;position:absolute;bottom:0;width:190px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:horizontal;overflow:hidden;text-overflow:ellipsis}.jp-card .jp-card-back{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-back .jp-card-bar{background-color:#444;background-image:-webkit-linear-gradient(#444,#333);background-image:linear-gradient(#444,#333);width:100%;height:20%;position:absolute;top:10%}.jp-card .jp-card-back:after{content:" ";display:block;background-color:#fff;background-image:-webkit-linear-gradient(#fff,#fff);background-image:linear-gradient(#fff,#fff);width:80%;height:16%;position:absolute;top:40%;left:2%}.jp-card .jp-card-back .jp-card-cvc{position:absolute;top:40%;left:85%;-webkit-transition-delay:600ms;-moz-transition-delay:600ms;transition-delay:600ms}.jp-card .jp-card-back .jp-card-shiny{position:absolute;top:66%;left:2%}.jp-card .jp-card-back .jp-card-shiny:after{content:"This card has been issued by Jesse Pollak and is licensed for anyone to use anywhere for free. It comes with no warranty. For support issues, please visit: github.com/jessepollak/card.";position:absolute;left:120%;top:5%;color:white;font-size:7px;width:230px;opacity:0.5}.jp-card.jp-card-identified{box-shadow:0 0 20px rgba(0,0,0,0.3)}.jp-card.jp-card-identified .jp-card-back,.jp-card.jp-card-identified .jp-card-front{background-color:#000;background-color:rgba(0,0,0,0.5)}.jp-card.jp-card-identified .jp-card-back:before,.jp-card.jp-card-identified .jp-card-front:before{-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease;background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);opacity:1}.jp-card.jp-card-identified .jp-card-back .jp-card-logo,.jp-card.jp-card-identified .jp-card-front .jp-card-logo{box-shadow:0 0 0 2px rgba(255,255,255,0.3)}.jp-card.jp-card-identified.no-radial-gradient .jp-card-back:before,.jp-card.jp-card-identified.no-radial-gradient .jp-card-front:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}@media (max-width: 450px){.card-wrapper{max-width:80vw;width:100%;margin:20px auto;overflow-x:hidden}.card-wrapper>.jp-card-container{transform:scale(0.625);transform-origin:left center}}\n',""]);const d=i},645:r=>{"use strict";r.exports=function(r){var e=[];return e.toString=function(){return this.map((function(e){var t="",a=void 0!==e[5];return e[4]&&(t+="@supports (".concat(e[4],") {")),e[2]&&(t+="@media ".concat(e[2]," {")),a&&(t+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),t+=r(e),a&&(t+="}"),e[2]&&(t+="}"),e[4]&&(t+="}"),t})).join("")},e.i=function(r,t,a,n,o){"string"==typeof r&&(r=[[null,r,void 0]]);var i={};if(a)for(var d=0;d<this.length;d++){var c=this[d][0];null!=c&&(i[c]=!0)}for(var p=0;p<r.length;p++){var l=[].concat(r[p]);a&&i[l[0]]||(void 0!==o&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=o),t&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=t):l[2]=t),n&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=n):l[4]="".concat(n)),e.push(l))}},e}},81:r=>{"use strict";r.exports=function(r){return r[1]}},648:r=>{"use strict";var e="Function.prototype.bind called on incompatible ",t=Array.prototype.slice,a=Object.prototype.toString,n="[object Function]";r.exports=function(r){var o=this;if("function"!=typeof o||a.call(o)!==n)throw new TypeError(e+o);for(var i,d=t.call(arguments,1),c=function(){if(this instanceof i){var e=o.apply(this,d.concat(t.call(arguments)));return Object(e)===e?e:this}return o.apply(r,d.concat(t.call(arguments)))},p=Math.max(0,o.length-d.length),l=[],s=0;s<p;s++)l.push("$"+s);if(i=Function("binder","return function ("+l.join(",")+"){ return binder.apply(this,arguments); }")(c),o.prototype){var f=function(){};f.prototype=o.prototype,i.prototype=new f,f.prototype=null}return i}},612:(r,e,t)=>{"use strict";var a=t(648);r.exports=Function.prototype.bind||a},221:r=>{"use strict";"undefined"!=typeof self?r.exports=self:"undefined"!=typeof window?r.exports=window:r.exports=Function("return this")()},168:(r,e,t)=>{"use strict";var a=t(221);r.exports=function(){return"object"==typeof t.g&&t.g&&t.g.Math===Math&&t.g.Array===Array?t.g:a}},642:(r,e,t)=>{"use strict";var a=t(612);r.exports=a.call(Function.call,Object.prototype.hasOwnProperty)},452:r=>{"use strict";var e,t,a=Object.prototype,n=a.hasOwnProperty,o=a.toString;"function"==typeof Symbol&&(e=Symbol.prototype.valueOf),"function"==typeof BigInt&&(t=BigInt.prototype.valueOf);var i=function(r){return r!=r},d={boolean:1,number:1,string:1,undefined:1},c=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/,p=/^[A-Fa-f0-9]+$/,l={};l.a=l.type=function(r,e){return typeof r===e},l.defined=function(r){return void 0!==r},l.empty=function(r){var e,t=o.call(r);if("[object Array]"===t||"[object Arguments]"===t||"[object String]"===t)return 0===r.length;if("[object Object]"===t){for(e in r)if(n.call(r,e))return!1;return!0}return!r},l.equal=function(r,e){if(r===e)return!0;var t,a=o.call(r);if(a!==o.call(e))return!1;if("[object Object]"===a){for(t in r)if(!l.equal(r[t],e[t])||!(t in e))return!1;for(t in e)if(!l.equal(r[t],e[t])||!(t in r))return!1;return!0}if("[object Array]"===a){if((t=r.length)!==e.length)return!1;for(;t--;)if(!l.equal(r[t],e[t]))return!1;return!0}return"[object Function]"===a?r.prototype===e.prototype:"[object Date]"===a&&r.getTime()===e.getTime()},l.hosted=function(r,e){var t=typeof e[r];return"object"===t?!!e[r]:!d[t]},l.instance=l.instanceof=function(r,e){return r instanceof e},l.nil=l.null=function(r){return null===r},l.undef=l.undefined=function(r){return void 0===r},l.args=l.arguments=function(r){var e="[object Arguments]"===o.call(r),t=!l.array(r)&&l.arraylike(r)&&l.object(r)&&l.fn(r.callee);return e||t},l.array=Array.isArray||function(r){return"[object Array]"===o.call(r)},l.args.empty=function(r){return l.args(r)&&0===r.length},l.array.empty=function(r){return l.array(r)&&0===r.length},l.arraylike=function(r){return!!r&&!l.bool(r)&&n.call(r,"length")&&isFinite(r.length)&&l.number(r.length)&&r.length>=0},l.bool=l.boolean=function(r){return"[object Boolean]"===o.call(r)},l.false=function(r){return l.bool(r)&&!1===Boolean(Number(r))},l.true=function(r){return l.bool(r)&&!0===Boolean(Number(r))},l.date=function(r){return"[object Date]"===o.call(r)},l.date.valid=function(r){return l.date(r)&&!isNaN(Number(r))},l.element=function(r){return void 0!==r&&"undefined"!=typeof HTMLElement&&r instanceof HTMLElement&&1===r.nodeType},l.error=function(r){return"[object Error]"===o.call(r)},l.fn=l.function=function(r){if("undefined"!=typeof window&&r===window.alert)return!0;var e=o.call(r);return"[object Function]"===e||"[object GeneratorFunction]"===e||"[object AsyncFunction]"===e},l.number=function(r){return"[object Number]"===o.call(r)},l.infinite=function(r){return r===1/0||r===-1/0},l.decimal=function(r){return l.number(r)&&!i(r)&&!l.infinite(r)&&r%1!=0},l.divisibleBy=function(r,e){var t=l.infinite(r),a=l.infinite(e),n=l.number(r)&&!i(r)&&l.number(e)&&!i(e)&&0!==e;return t||a||n&&r%e==0},l.integer=l.int=function(r){return l.number(r)&&!i(r)&&r%1==0},l.maximum=function(r,e){if(i(r))throw new TypeError("NaN is not a valid value");if(!l.arraylike(e))throw new TypeError("second argument must be array-like");for(var t=e.length;--t>=0;)if(r<e[t])return!1;return!0},l.minimum=function(r,e){if(i(r))throw new TypeError("NaN is not a valid value");if(!l.arraylike(e))throw new TypeError("second argument must be array-like");for(var t=e.length;--t>=0;)if(r>e[t])return!1;return!0},l.nan=function(r){return!l.number(r)||r!=r},l.even=function(r){return l.infinite(r)||l.number(r)&&r==r&&r%2==0},l.odd=function(r){return l.infinite(r)||l.number(r)&&r==r&&r%2!=0},l.ge=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r>=e},l.gt=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r>e},l.le=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r<=e},l.lt=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r<e},l.within=function(r,e,t){if(i(r)||i(e)||i(t))throw new TypeError("NaN is not a valid value");if(!l.number(r)||!l.number(e)||!l.number(t))throw new TypeError("all arguments must be numbers");return l.infinite(r)||l.infinite(e)||l.infinite(t)||r>=e&&r<=t},l.object=function(r){return"[object Object]"===o.call(r)},l.primitive=function(r){return!r||!("object"==typeof r||l.object(r)||l.fn(r)||l.array(r))},l.hash=function(r){return l.object(r)&&r.constructor===Object&&!r.nodeType&&!r.setInterval},l.regexp=function(r){return"[object RegExp]"===o.call(r)},l.string=function(r){return"[object String]"===o.call(r)},l.base64=function(r){return l.string(r)&&(!r.length||c.test(r))},l.hex=function(r){return l.string(r)&&(!r.length||p.test(r))},l.symbol=function(r){return"function"==typeof Symbol&&"[object Symbol]"===o.call(r)&&"symbol"==typeof e.call(r)},l.bigint=function(r){return"function"==typeof BigInt&&"[object BigInt]"===o.call(r)&&"bigint"==typeof t.call(r)},r.exports=l},907:(r,e,t)=>{"use strict";r.exports=t(886)},886:(r,e,t)=>{"use strict";var a=t(452),n=t(642),o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,d=function(r,e,t){o&&"__proto__"===e?o(r,e,{enumerable:!0,configurable:!0,value:t,writable:!0}):r[e]=t},c=function(r,e){if("__proto__"===e){if(!n(r,e))return;if(i)return i(r,e).value}return r[e]};r.exports=function r(){var e,t,n,o,i,p,l=arguments[0]||{},s=1,f=arguments.length,g=!1;for("boolean"==typeof l&&(g=l,l=arguments[1]||{},s=2),"object"==typeof l||a.fn(l)||(l={});s<f;s++)if(null!=(e=arguments[s]))for(t in"string"==typeof e&&(e=e.split("")),e)n=c(l,t),l!==(o=c(e,t))&&(g&&o&&(a.hash(o)||(i=a.array(o)))?(i?(i=!1,p=n&&a.array(n)?n:[]):p=n&&a.hash(n)?n:{},d(l,t,r(g,p,o))):void 0!==o&&d(l,t,o));return l}},28:function(r,e,t){(function(){var e,a,n,o,i,d,c,p,l,s,f,g,u,j,b,h,m,v,x,y,k,w,C,E,$,z,D=[].indexOf||function(r){for(var e=0,t=this.length;e<t;e++)if(e in this&&this[e]===r)return e;return-1};b=t(168)(),a=t(202),i=[{type:"amex",pattern:/^3[47]/,format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[4],luhn:!0},{type:"dankort",pattern:/^5019/,format:c=/(\d{1,4})/g,length:[16],cvcLength:[3],luhn:!0},{type:"dinersclub",pattern:/^(36|38|30[0-5])/,format:/(\d{1,4})(\d{1,6})?(\d{1,4})?/,length:[14],cvcLength:[3],luhn:!0},{type:"discover",pattern:/^(6011|65|64[4-9]|622)/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"elo",pattern:/^401178|^401179|^431274|^438935|^451416|^457393|^457631|^457632|^504175|^627780|^636297|^636369|^636368|^(506699|5067[0-6]\d|50677[0-8])|^(50900\d|5090[1-9]\d|509[1-9]\d{2})|^65003[1-3]|^(65003[5-9]|65004\d|65005[0-1])|^(65040[5-9]|6504[1-3]\d)|^(65048[5-9]|65049\d|6505[0-2]\d|65053[0-8])|^(65054[1-9]|6505[5-8]\d|65059[0-8])|^(65070\d|65071[0-8])|^65072[0-7]|^(65090[1-9]|65091\d|650920)|^(65165[2-9]|6516[6-7]\d)|^(65500\d|65501\d)|^(65502[1-9]|6550[3-4]\d|65505[0-8])|^(65092[1-9]|65097[0-8])/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"hipercard",pattern:/^(384100|384140|384160|606282|637095|637568|60(?!11))/,format:c,length:[14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"jcb",pattern:/^(308[8-9]|309[0-3]|3094[0]{4}|309[6-9]|310[0-2]|311[2-9]|3120|315[8-9]|333[7-9]|334[0-9]|35)/,format:c,length:[16,19],cvcLength:[3],luhn:!0},{type:"laser",pattern:/^(6706|6771|6709)/,format:c,length:[16,17,18,19],cvcLength:[3],luhn:!0},{type:"maestro",pattern:/^(50|5[6-9]|6007|6220|6304|6703|6708|6759|676[1-3])/,format:c,length:[12,13,14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"mastercard",pattern:/^(5[1-5]|677189)|^(222[1-9]|2[3-6]\d{2}|27[0-1]\d|2720)/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"mir",pattern:/^220[0-4][0-9][0-9]\d{10}$/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"troy",pattern:/^9792/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"unionpay",pattern:/^62/,format:c,length:[16,17,18,19],cvcLength:[3],luhn:!1},{type:"visaelectron",pattern:/^4(026|17500|405|508|844|91[37])/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"visa",pattern:/^4/,format:c,length:[13,16],cvcLength:[3],luhn:!0}],n=function(r){var e,t,a,n,o;for(r=(r+"").replace(/\D/g,""),t=void 0,a=0,n=i.length;a<n;a++)e=i[a],(o=r.match(e.pattern))&&(!t||o[0].length>t[1][0].length)&&(t=[e,o]);return t&&t[0]},o=function(r){var e,t,a;for(t=0,a=i.length;t<a;t++)if((e=i[t]).type===r)return e},m=function(r){var e,t,a,n,o,i;for(o=!0,i=0,a=0,n=(t=(r+"").split("").reverse()).length;a<n;a++)e=t[a],e=parseInt(e,10),(o=!o)&&(e*=2),e>9&&(e-=9),i+=e;return i%10==0},h=function(r){var e;try{if(null!=r.selectionStart&&r.selectionStart!==r.selectionEnd)return!0;if(null!=("undefined"!=typeof document&&null!==document&&null!=(e=document.selection)?e.createRange:void 0)&&document.selection.createRange().text)return!0}catch(r){}return!1},v=function(r){return setTimeout((function(){var t,n;return t=r.target,n=a.val(t),n=e.fns.formatCardNumber(n),d(t,n),a.trigger(t,"change")}))},s=function(r){return function(e){var t,o,i,d,c,p,l,s,f,g,u;if(e.which>0?(o=String.fromCharCode(e.which),u=a.val(e.target)+o):(o=e.data,u=a.val(e.target)),/^\d+$/.test(o)){for(s=e.target,t=n(u),p=u.replace(/\D/g,"").length,g=[16],t&&(g=t.length),r&&(g=g.filter((function(e){return e<=r}))),i=d=0,c=g.length;d<c;i=++d)if(!(p>=(f=g[i])&&g[i+1])&&p>=f)return;if(!h(s))return l=t&&"amex"===t.type?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/,u=u.substring(0,u.length-1),l.test(u)?(e.preventDefault(),a.val(s,u+" "+o),a.trigger(s,"change")):void 0}}},p=function(r){var e,t;if(e=r.target,t=a.val(e),!r.meta&&8===r.which&&!h(e))return/\d\s$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\d\s$/,"")),a.trigger(e,"change")):/\s\d?$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\s\d?$/,"")),a.trigger(e,"change")):void 0},f=function(r){var e,t,n;if(t=r.target,r.which>0?(e=String.fromCharCode(r.which),n=a.val(t)+e):(e=r.data,n=a.val(t)),/^\d+$/.test(e))return/^\d$/.test(n)&&"0"!==n&&"1"!==n?(r.preventDefault(),a.val(t,"0"+n+" / "),a.trigger(t,"change")):/^\d\d$/.test(n)?(r.preventDefault(),a.val(t,n+" / "),a.trigger(t,"change")):void 0},j=function(r){var e,t,n;if(e=String.fromCharCode(r.which),/^\d+$/.test(e))return t=r.target,n=a.val(t)+e,/^\d$/.test(n)&&"0"!==n&&"1"!==n?(r.preventDefault(),a.val(t,"0"+n),a.trigger(t,"change")):/^\d\d$/.test(n)?(r.preventDefault(),a.val(t,""+n),a.trigger(t,"change")):void 0},g=function(r){var e,t,n;if(e=String.fromCharCode(r.which),/^\d+$/.test(e))return t=r.target,n=a.val(t),/^\d\d$/.test(n)?(a.val(t,n+" / "),a.trigger(t,"change")):void 0},u=function(r){var e,t;if("/"===String.fromCharCode(r.which))return e=r.target,t=a.val(e),/^\d$/.test(t)&&"0"!==t?(a.val(e,"0"+t+" / "),a.trigger(e,"change")):void 0},l=function(r){var e,t;if(!r.metaKey&&(e=r.target,t=a.val(e),8===r.which&&!h(e)))return/\d(\s|\/)+$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\d(\s|\/)*$/,"")),a.trigger(e,"change")):/\s\/\s?\d?$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\s\/\s?\d?$/,"")),a.trigger(e,"change")):void 0},E=function(r){var e;return!(!r.metaKey&&!r.ctrlKey)||(32===r.which?r.preventDefault():0===r.which||r.which<33||(e=String.fromCharCode(r.which),/[\d\s]/.test(e)?void 0:r.preventDefault()))},y=function(r){return function(e){var t,o,i,d,c;if(d=e.target,o=String.fromCharCode(e.which),/^\d+$/.test(o)&&!h(d))return c=(a.val(d)+o).replace(/\D/g,""),i=16,(t=n(c))&&(i=t.length[t.length.length-1]),r&&(i=Math.min(i,r)),c.length<=i?void 0:e.preventDefault()}},w=function(r,e){var t,n;if(n=r.target,t=String.fromCharCode(r.which),/^\d+$/.test(t)&&!h(n))return(a.val(n)+t).replace(/\D/g,"").length>e?r.preventDefault():void 0},k=function(r){return w(r,6)},C=function(r){return w(r,2)},$=function(r){return w(r,4)},x=function(r){var e,t;if(t=r.target,e=String.fromCharCode(r.which),/^\d+$/.test(e)&&!h(t))return(a.val(t)+e).length<=4?void 0:r.preventDefault()},z=function(r){var t,n,o,d,c;if(d=r.target,c=a.val(d),o=e.fns.cardType(c)||"unknown",!a.hasClass(d,o))return t=function(){var r,e,t;for(t=[],r=0,e=i.length;r<e;r++)n=i[r],t.push(n.type);return t}(),a.removeClass(d,"unknown"),a.removeClass(d,t.join(" ")),a.addClass(d,o),a.toggleClass(d,"identified","unknown"!==o),a.trigger(d,"payment.cardType",o)},d=function(r,e){var t;if(t=r.selectionEnd,a.val(r,e),t)return r.selectionEnd=t},e=function(){function r(){}return r.J=a,r.fns={cardExpiryVal:function(r){var e,t,a;return e=(t=(r=r.replace(/\s/g,"")).split("/",2))[0],2===(null!=(a=t[1])?a.length:void 0)&&/^\d+$/.test(a)&&(a=(new Date).getFullYear().toString().slice(0,2)+a),{month:e=parseInt(e,10),year:a=parseInt(a,10)}},validateCardNumber:function(r){var e,t;return r=(r+"").replace(/\s+|-/g,""),!!/^\d+$/.test(r)&&!!(e=n(r))&&(t=r.length,D.call(e.length,t)>=0&&(!1===e.luhn||m(r)))},validateCardExpiry:function(e,t){var n,o,i,d;return"object"==typeof e&&"month"in e?(e=(i=e).month,t=i.year):"string"==typeof e&&D.call(e,"/")>=0&&(e=(d=r.fns.cardExpiryVal(e)).month,t=d.year),!(!e||!t)&&(e=a.trim(e),t=a.trim(t),!!/^\d+$/.test(e)&&!!/^\d+$/.test(t)&&!!((e=parseInt(e,10))&&e<=12)&&(2===t.length&&(t=(new Date).getFullYear().toString().slice(0,2)+t),o=new Date(t,e),n=new Date,o.setMonth(o.getMonth()-1),o.setMonth(o.getMonth()+1,1),o>n))},validateCardCVC:function(r,e){var t,n;return r=a.trim(r),!!/^\d+$/.test(r)&&(e&&o(e)?(t=r.length,D.call(null!=(n=o(e))?n.cvcLength:void 0,t)>=0):r.length>=3&&r.length<=4)},cardType:function(r){var e;return r&&(null!=(e=n(r))?e.type:void 0)||null},formatCardNumber:function(r){var e,t,a,o;return(e=n(r))?(o=e.length[e.length.length-1],r=(r=r.replace(/\D/g,"")).slice(0,o),e.format.global?null!=(a=r.match(e.format))?a.join(" "):void 0:null!=(t=e.format.exec(r))?(t.shift(),(t=t.filter((function(r){return r}))).join(" ")):void 0):r}},r.restrictNumeric=function(r){return a.on(r,"keypress",E),a.on(r,"input",E)},r.cardExpiryVal=function(e){return r.fns.cardExpiryVal(a.val(e))},r.formatCardCVC=function(e){return r.restrictNumeric(e),a.on(e,"keypress",x),a.on(e,"input",x),e},r.formatCardExpiry=function(e){var t,n;return r.restrictNumeric(e),e.length&&2===e.length?(t=e[0],n=e[1],this.formatCardExpiryMultiple(t,n)):(a.on(e,"keypress",k),a.on(e,"keypress",f),a.on(e,"keypress",u),a.on(e,"keypress",g),a.on(e,"keydown",l),a.on(e,"input",f)),e},r.formatCardExpiryMultiple=function(r,e){return a.on(r,"keypress",C),a.on(r,"keypress",j),a.on(r,"input",j),a.on(e,"keypress",$),a.on(e,"input",$)},r.formatCardNumber=function(e,t){return r.restrictNumeric(e),a.on(e,"keypress",y(t)),a.on(e,"keypress",s(t)),a.on(e,"keydown",p),a.on(e,"keyup blur",z),a.on(e,"blur",s(t)),a.on(e,"paste",v),a.on(e,"input",s(t)),e},r.getCardArray=function(){return i},r.setCardArray=function(r){return i=r,!0},r.addToCardArray=function(r){return i.push(r)},r.removeFromCardArray=function(r){var e;for(e in i)i[e].type===r&&i.splice(e,1);return!0},r}(),r.exports=e,b.Payment=e}).call(this)},202:function(r){(function(){var e,t,a;(e=function(r){return e.isDOMElement(r)?r:document.querySelectorAll(r)}).isDOMElement=function(r){return r&&null!=r.nodeName},a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,e.trim=function(r){return null===r?"":(r+"").replace(a,"")},t=/\r/g,e.val=function(r,e){var a;return arguments.length>1?r.value=e:"string"==typeof(a=r.value)?a.replace(t,""):null===a?"":a},e.preventDefault=function(r){if("function"!=typeof r.preventDefault)return r.returnValue=!1,!1;r.preventDefault()},e.normalizeEvent=function(r){var t;return null==(r={which:null!=(t=r).which?t.which:void 0,target:t.target||t.srcElement,preventDefault:function(){return e.preventDefault(t)},originalEvent:t,data:t.data||t.detail}).which&&(r.which=null!=t.charCode?t.charCode:t.keyCode),r},e.on=function(r,t,a){var n,o,i,d,c,p,l,s;if(r.length)for(o=0,d=r.length;o<d;o++)n=r[o],e.on(n,t,a);else{if(!t.match(" "))return l=a,a=function(r){return r=e.normalizeEvent(r),l(r)},r.addEventListener?r.addEventListener(t,a,!1):r.attachEvent?(t="on"+t,r.attachEvent(t,a)):void(r["on"+t]=a);for(i=0,c=(s=t.split(" ")).length;i<c;i++)p=s[i],e.on(r,p,a)}},e.addClass=function(r,t){var a;return r.length?function(){var n,o,i;for(i=[],n=0,o=r.length;n<o;n++)a=r[n],i.push(e.addClass(a,t));return i}():r.classList?r.classList.add(t):r.className+=" "+t},e.hasClass=function(r,t){var a,n,o,i;if(r.length){for(n=!0,o=0,i=r.length;o<i;o++)a=r[o],n=n&&e.hasClass(a,t);return n}return r.classList?r.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(r.className)},e.removeClass=function(r,t){var a,n,o,i,d,c;if(r.length)return function(){var a,o,i;for(i=[],a=0,o=r.length;a<o;a++)n=r[a],i.push(e.removeClass(n,t));return i}();if(r.classList){for(c=[],o=0,i=(d=t.split(" ")).length;o<i;o++)a=d[o],c.push(r.classList.remove(a));return c}return r.className=r.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")},e.toggleClass=function(r,t,a){var n;return r.length?function(){var o,i,d;for(d=[],o=0,i=r.length;o<i;o++)n=r[o],d.push(e.toggleClass(n,t,a));return d}():a?e.hasClass(r,t)?void 0:e.addClass(r,t):e.removeClass(r,t)},e.append=function(r,t){var a;return r.length?function(){var n,o,i;for(i=[],n=0,o=r.length;n<o;n++)a=r[n],i.push(e.append(a,t));return i}():r.insertAdjacentHTML("beforeend",t)},e.find=function(r,e){return(r instanceof NodeList||r instanceof Array)&&(r=r[0]),r.querySelectorAll(e)},e.trigger=function(r,e,t){var a;try{a=new CustomEvent(e,{detail:t})}catch(r){(a=document.createEvent("CustomEvent")).initCustomEvent?a.initCustomEvent(e,!0,!0,t):a.initEvent(e,!0,!0,t)}return r.dispatchEvent(a)},r.exports=e}).call(this)},346:(r,e,t)=>{"use strict";t.r(e),t.d(e,{default:()=>h});var a=t(379),n=t.n(a),o=t(795),i=t.n(o),d=t(569),c=t.n(d),p=t(565),l=t.n(p),s=t(216),f=t.n(s),g=t(589),u=t.n(g),j=t(120),b={};b.styleTagTransform=u(),b.setAttributes=l(),b.insert=c().bind(null,"head"),b.domAPI=i(),b.insertStyleElement=f(),n()(j.Z,b);const h=j.Z&&j.Z.locals?j.Z.locals:void 0},379:r=>{"use strict";var e=[];function t(r){for(var t=-1,a=0;a<e.length;a++)if(e[a].identifier===r){t=a;break}return t}function a(r,a){for(var o={},i=[],d=0;d<r.length;d++){var c=r[d],p=a.base?c[0]+a.base:c[0],l=o[p]||0,s="".concat(p," ").concat(l);o[p]=l+1;var f=t(s),g={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==f)e[f].references++,e[f].updater(g);else{var u=n(g,a);a.byIndex=d,e.splice(d,0,{identifier:s,updater:u,references:1})}i.push(s)}return i}function n(r,e){var t=e.domAPI(e);return t.update(r),function(e){if(e){if(e.css===r.css&&e.media===r.media&&e.sourceMap===r.sourceMap&&e.supports===r.supports&&e.layer===r.layer)return;t.update(r=e)}else t.remove()}}r.exports=function(r,n){var o=a(r=r||[],n=n||{});return function(r){r=r||[];for(var i=0;i<o.length;i++){var d=t(o[i]);e[d].references--}for(var c=a(r,n),p=0;p<o.length;p++){var l=t(o[p]);0===e[l].references&&(e[l].updater(),e.splice(l,1))}o=c}}},569:r=>{"use strict";var e={};r.exports=function(r,t){var a=function(r){if(void 0===e[r]){var t=document.querySelector(r);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(r){t=null}e[r]=t}return e[r]}(r);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}},216:r=>{"use strict";r.exports=function(r){var e=document.createElement("style");return r.setAttributes(e,r.attributes),r.insert(e,r.options),e}},565:(r,e,t)=>{"use strict";r.exports=function(r){var e=t.nc;e&&r.setAttribute("nonce",e)}},795:r=>{"use strict";r.exports=function(r){var e=r.insertStyleElement(r);return{update:function(t){!function(r,e,t){var a="";t.supports&&(a+="@supports (".concat(t.supports,") {")),t.media&&(a+="@media ".concat(t.media," {"));var n=void 0!==t.layer;n&&(a+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),a+=t.css,n&&(a+="}"),t.media&&(a+="}"),t.supports&&(a+="}");var o=t.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleTagTransform(a,r,e.options)}(e,r,t)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(e)}}}},589:r=>{"use strict";r.exports=function(r,e){if(e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}}},e={};function t(a){var n=e[a];if(void 0!==n)return n.exports;var o=e[a]={id:a,exports:{}};return r[a].call(o.exports,o,o.exports,t),o.exports}t.n=r=>{var e=r&&r.__esModule?()=>r.default:()=>r;return t.d(e,{a:e}),e},t.d=(r,e)=>{for(var a in e)t.o(e,a)&&!t.o(r,a)&&Object.defineProperty(r,a,{enumerable:!0,get:e[a]})},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),t.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),t.r=r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},t.nc=void 0;var a=t(579);card=a})();
================================================
FILE: dist/card.js.LICENSE.txt
================================================
/*!
* node.extend
* Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* @fileoverview
* Port of jQuery.extend that actually works on node.js
*/
/**!
* is
* the definitive JavaScript type testing library
*
* @copyright 2013-2014 Enrico Marino / Jordan Harband
* @license MIT
*/
================================================
FILE: dist/jquery.card.js
================================================
/*! For license information please see jquery.card.js.LICENSE.txt */
var card;(()=>{var r,e,t={579:function(r,e,t){var a,n,o;t(346),n=t(202),t(28),o=t(907),a=function(){var r,e;class t{template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a){return e[t]}))}constructor(r){var e;this.maskCardNumber=this.maskCardNumber.bind(this),this.options=o(!0,this.defaults,r),this.options.form?(this.$el=n(this.options.form),this.options.container?(this.$container=n(this.options.container),(e=n.isDOMElement(this.$container)?this.$container:this.$container[0]).getAttribute(this.initializedDataAttr)||(e.setAttribute(this.initializedDataAttr,!0),this.render(),this.attachHandlers(),this.handleInitialPlaceholders())):console.log("Please provide a container")):console.log("Please provide a form")}render(){var r,e,t,a,i,d,c,p;for(t in n.append(this.$container,this.template(this.cardTemplate,o({},this.options.messages,this.options.placeholders))),i=this.options.cardSelectors)c=i[t],this[`$${t}`]=n.find(this.$container,c);for(t in d=this.options.formSelectors)c=d[t],c=this.options[t]?this.options[t]:c,!(a=n.find(this.$el,c)).length&&this.options.debug&&console.error(`Card can't find a ${t} in your form.`),this[`$${t}`]=a;if(this.options.formatting&&(Payment.formatCardNumber(this.$numberInput),Payment.formatCardCVC(this.$cvcInput),Payment.formatCardExpiry(this.$expiryInput)),this.options.width&&(r=n(this.options.cardSelectors.cardContainer)[0],e=parseInt(r.clientWidth||window.getComputedStyle(r).width),r.style.transform=`scale(${this.options.width/e})`),("undefined"!=typeof navigator&&null!==navigator?navigator.userAgent:void 0)&&-1!==(p=navigator.userAgent.toLowerCase()).indexOf("safari")&&-1===p.indexOf("chrome")&&n.addClass(this.$card,"jp-card-safari"),/MSIE 10\./i.test(navigator.userAgent)&&n.addClass(this.$card,"jp-card-ie-10"),/rv:11.0/i.test(navigator.userAgent))return n.addClass(this.$card,"jp-card-ie-11")}attachHandlers(){var e,t;return t=[this.validToggler("cardNumber")],this.options.masks.cardNumber&&t.push(this.maskCardNumber),r(this.$numberInput,this.$numberDisplay,{fill:!1,filters:t}),n.on(this.$numberInput,"payment.cardType",this.handle("setCardType")),(e=[function(r){return 1===r.length&&"0"===r[0]?"":r.replace(/(\s+)/g,"")}]).push(this.validToggler("cardExpiry")),r(this.$expiryInput,this.$expiryDisplay,{join:function(r){return 2===r[0].length||r[1]?"/":""},filters:e}),r(this.$cvcInput,this.$cvcDisplay,{filters:this.validToggler("cardCVC")}),n.on(this.$cvcInput,"focus",this.handle("flipCard")),n.on(this.$cvcInput,"blur",this.handle("unflipCard")),r(this.$nameInput,this.$nameDisplay,{fill:!1,filters:this.validToggler("cardHolderName"),join:" "})}handleInitialPlaceholders(){var r,e,t,a;for(e in a=[],t=this.options.formSelectors)t[e],(r=this[`$${e}`])instanceof NodeList&&(r=r[0]),n.val(r)?(n.trigger(r,"paste"),a.push(function(r){return setTimeout((function(){return n.trigger(r,"keyup")}))}(r))):a.push(void 0);return a}handle(r){return e=>{var t;return(t=Array.prototype.slice.call(arguments)).unshift(e.target),this.handlers[r].apply(this,t)}}validToggler(r){var e;return"cardExpiry"===r?e=function(r){var e;return e=Payment.fns.cardExpiryVal(r),Payment.fns.validateCardExpiry(e.month,e.year)}:"cardCVC"===r?e=r=>Payment.fns.validateCardCVC(r,this.cardType):"cardNumber"===r?e=function(r){return Payment.fns.validateCardNumber(r)}:"cardHolderName"===r&&(e=function(r){return""!==r}),(r,t,a)=>{var n;return n=e(r),this.toggleValidClass(t,n),this.toggleValidClass(a,n),r}}toggleValidClass(r,e){return n.toggleClass(r,this.options.classes.valid,e),n.toggleClass(r,this.options.classes.invalid,!e)}maskCardNumber(r,e,t){var a,n;return a=this.options.masks.cardNumber,(n=r.split(" ")).length>=3?(n.forEach((function(r,e){if(e!==n.length-1)return n[e]=n[e].replace(/\d/g,a)})),n.join(" ")):r.replace(/\d/g,a)}getCardType(){return Payment.fns.cardType(this.$numberInput[0].value)||"unknown"}}return t.prototype.initializedDataAttr="data-jp-card-initialized",t.prototype.cardTemplate='<div class="jp-card-container"><div class="jp-card"><div class="jp-card-front"><div class="jp-card-logo jp-card-elo"><div class="e">e</div><div class="l">l</div><div class="o">o</div></div><div class="jp-card-logo jp-card-visa">Visa</div><div class="jp-card-logo jp-card-visaelectron">Visa<div class="elec">Electron</div></div><div class="jp-card-logo jp-card-mastercard">Mastercard</div><div class="jp-card-logo jp-card-maestro">Maestro</div><div class="jp-card-logo jp-card-amex"></div><div class="jp-card-logo jp-card-discover">discover</div><div class="jp-card-logo jp-card-unionpay">UnionPay</div><div class="jp-card-logo jp-card-dinersclub"></div><div class="jp-card-logo jp-card-hipercard">Hipercard</div><div class="jp-card-logo jp-card-troy">troy</div><div class="jp-card-logo jp-card-dankort"><div class="dk"><div class="d"></div><div class="k"></div></div></div><div class="jp-card-logo jp-card-jcb"><div class="j">J</div><div class="c">C</div><div class="b">B</div></div><div class="jp-card-lower"><div class="jp-card-shiny"></div><div class="jp-card-cvc jp-card-display">{{cvc}}</div><div class="jp-card-number jp-card-display">{{number}}</div><div class="jp-card-name jp-card-display">{{name}}</div><div class="jp-card-expiry jp-card-display" data-before="{{monthYear}}" data-after="{{validDate}}">{{expiry}}</div></div></div><div class="jp-card-back"><div class="jp-card-bar"></div><div class="jp-card-cvc jp-card-display">{{cvc}}</div><div class="jp-card-shiny"></div></div></div></div>',t.prototype.cardTypes=["jp-card-amex","jp-card-dankort","jp-card-dinersclub","jp-card-discover","jp-card-unionpay","jp-card-jcb","jp-card-laser","jp-card-maestro","jp-card-mastercard","jp-card-troy","jp-card-unionpay","jp-card-visa","jp-card-visaelectron","jp-card-elo","jp-card-hipercard"],t.prototype.defaults={formatting:!0,formSelectors:{numberInput:'input[name="number"]',expiryInput:'input[name="expiry"]',cvcInput:'input[name="cvc"]',nameInput:'input[name="name"]'},cardSelectors:{cardContainer:".jp-card-container",card:".jp-card",numberDisplay:".jp-card-number",expiryDisplay:".jp-card-expiry",cvcDisplay:".jp-card-cvc",nameDisplay:".jp-card-name"},messages:{validDate:"valid\nthru",monthYear:"month/year"},placeholders:{number:"•••• •••• •••• ••••",cvc:"•••",expiry:"••/••",name:"Full Name"},masks:{cardNumber:!1},classes:{valid:"jp-card-valid",invalid:"jp-card-invalid"},debug:!1},t.prototype.handlers={setCardType:function(r,e){var t,a;if(t=e.data,a=new CustomEvent("card-type-changed",{detail:e.data}),document.dispatchEvent(a),!n.hasClass(this.$card,t))return n.removeClass(this.$card,"jp-card-unknown"),n.removeClass(this.$card,this.cardTypes.join(" ")),n.addClass(this.$card,`jp-card-${t}`),n.toggleClass(this.$card,"jp-card-identified","unknown"!==t),this.cardType=t},flipCard:function(){return n.addClass(this.$card,"jp-card-flipped")},unflipCard:function(){return n.removeClass(this.$card,"jp-card-flipped")}},r=function(r,t,a={}){var o,i,d;return a.fill=a.fill||!1,a.filters=a.filters||[],a.filters instanceof Array||(a.filters=[a.filters]),a.join=a.join||"","function"!=typeof a.join&&(o=a.join,a.join=function(){return o}),d=function(){var r,e,a;for(a=[],r=0,e=t.length;r<e;r++)i=t[r],a.push(i.textContent);return a}(),e(r,t,d,a),n.on(r,"focus",(function(){return n.addClass(t,"jp-card-focused")})),n.on(r,"blur",(function(){return n.removeClass(t,"jp-card-focused")})),n.on(r,"keyup change paste",(function(n){return e(r,t,d,a)})),r},e=function(r,e,t,a){var o,i,d,c,p,l,s,f,g,u,j,b;for(b=function(){var e,t,a;for(a=[],e=0,t=r.length;e<t;e++)o=r[e],a.push(n.val(o));return a}(),c=a.join(b),(b=b.join(c))===c&&(b=""),d=0,l=(u=a.filters).length;d<l;d++)b=(0,u[d])(b,r,e);for(j=[],i=p=0,s=e.length;p<s;i=++p)f=e[i],g=a.fill?b+t[i].substring(b.length):b||t[i],j.push(f.textContent=g);return j},t}.call(this),r.exports=a,t.g.Card=a},120:(r,e,t)=>{"use strict";t.d(e,{Z:()=>d});var a=t(81),n=t.n(a),o=t(645),i=t.n(o)()(n());i.push([r.id,'.jp-card.jp-card-safari.jp-card-identified .jp-card-front:before,.jp-card.jp-card-safari.jp-card-identified .jp-card-back:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}.jp-card.jp-card-ie-10.jp-card-flipped,.jp-card.jp-card-ie-11.jp-card-flipped{-webkit-transform:0deg;-moz-transform:0deg;-ms-transform:0deg;-o-transform:0deg;transform:0deg}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-front,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-front{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back{-webkit-transform:rotateY(0deg);-moz-transform:rotateY(0deg);-ms-transform:rotateY(0deg);-o-transform:rotateY(0deg);transform:rotateY(0deg)}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back:after{left:18%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-cvc,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-cvc{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg);left:5%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny{left:84%}.jp-card.jp-card-ie-10.jp-card-flipped .jp-card-back .jp-card-shiny:after,.jp-card.jp-card-ie-11.jp-card-flipped .jp-card-back .jp-card-shiny:after{left:-480%;-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card.jp-card-ie-10.jp-card-amex .jp-card-back,.jp-card.jp-card-ie-11.jp-card-amex .jp-card-back{display:none}.jp-card-logo{height:36px;width:60px;font-style:italic}.jp-card-logo,.jp-card-logo:before,.jp-card-logo:after{box-sizing:border-box}.jp-card-logo.jp-card-amex{text-transform:uppercase;font-size:4px;font-weight:bold;color:white;background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);background-image:repeating-radial-gradient(circle at center, #fff 1px, #999 2px);border:1px solid #EEE}.jp-card-logo.jp-card-amex:before,.jp-card-logo.jp-card-amex:after{width:28px;display:block;position:absolute;left:16px}.jp-card-logo.jp-card-amex:before{height:28px;content:"american";top:3px;text-align:left;padding-left:2px;padding-top:11px;background:#267AC3}.jp-card-logo.jp-card-amex:after{content:"express";bottom:11px;text-align:right;padding-right:2px}.jp-card.jp-card-amex.jp-card-flipped{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:before,.jp-card.jp-card-amex.jp-card-identified .jp-card-back:before{background-color:#108168}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-logo.jp-card-amex{opacity:1}.jp-card.jp-card-amex.jp-card-identified .jp-card-front .jp-card-cvc{visibility:visible}.jp-card.jp-card-amex.jp-card-identified .jp-card-front:after{opacity:1}.jp-card-logo.jp-card-discover{background:#f60;color:#111;text-transform:uppercase;font-style:normal;font-weight:bold;font-size:10px;text-align:center;overflow:hidden;z-index:1;padding-top:9px;letter-spacing:.03em;border:1px solid #EEE}.jp-card-logo.jp-card-discover:before,.jp-card-logo.jp-card-discover:after{content:" ";display:block;position:absolute}.jp-card-logo.jp-card-discover:before{background:white;width:200px;height:200px;border-radius:200px;bottom:-5%;right:-80%;z-index:-1}.jp-card-logo.jp-card-discover:after{width:8px;height:8px;border-radius:4px;top:10px;left:27px;background-color:#f60;background-image:-webkit-radial-gradient(#f60,#fff);background-image:radial-gradient( #f60,#fff);content:"network";font-size:4px;line-height:24px;text-indent:-7px}.jp-card .jp-card-front .jp-card-logo.jp-card-discover{right:12%;top:18%}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:before,.jp-card.jp-card-discover.jp-card-identified .jp-card-back:before{background-color:#86B8CF}.jp-card.jp-card-discover.jp-card-identified .jp-card-logo.jp-card-discover{opacity:1}.jp-card.jp-card-discover.jp-card-identified .jp-card-front:after{-webkit-transition:400ms;-moz-transition:400ms;transition:400ms;content:" ";display:block;background-color:#f60;background-image:-webkit-linear-gradient(#f60,#ffa366,#f60);background-image:linear-gradient(#f60,#ffa366,#f60);height:50px;width:50px;border-radius:25px;position:absolute;left:100%;top:15%;margin-left:-25px;box-shadow:inset 1px 1px 3px 1px rgba(0,0,0,0.5)}.jp-card-logo.jp-card-unionpay{width:60px;display:block;height:40px;background:#e21836;-webkit-transform:skew(-15deg);-moz-transform:skew(20deg);-o-transform:skew(20deg);border-radius:5px;font-size:10px;z-index:1;line-height:33px;color:#fff;text-align:center;font-family:"Sans-serif", "Microsoft Yahei", "\\5FAE\\8F6F\\96C5\\9ED1", "Hiragino Sans", "Gulim", "\\5B8B\\4F53";font-weight:bold}.jp-card-logo.jp-card-unionpay:after,.jp-card-logo.jp-card-unionpay:before{display:block;margin:0 auto;position:absolute;height:40px;top:0;z-index:-1}.jp-card-logo.jp-card-unionpay:before{content:" ";width:28px;background:#00447c;left:14px;border-top-left-radius:5px;border-bottom-left-radius:5px}.jp-card-logo.jp-card-unionpay:after{content:"银联";width:26px;background:#007b84;left:34px;border-radius:5px;font-size:10px;line-height:54px;text-indent:-17px}.jp-card.jp-card-unionpay.jp-card-identified .jp-card-back:before,.jp-card.jp-card-unionpay.jp-card-identified .jp-card-front:before{background-color:#987c00}.jp-card.jp-card-unionpay.jp-card-identified .jp-card-logo.jp-card-unionpay{opacity:1}.jp-card-logo.jp-card-visa{text-transform:uppercase;color:white;text-align:center;font-weight:bold;font-size:24px;line-height:18px;margin-top:5px}.jp-card-logo.jp-card-visa:before,.jp-card-logo.jp-card-visa:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visa:before{position:absolute;left:-4px;width:0;height:0;border-style:solid;border-width:0 12px 6px 0;border-color:transparent #ffffff transparent transparent}.jp-card.jp-card-visa.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visa.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visa.jp-card-identified .jp-card-logo.jp-card-visa{opacity:1;box-shadow:none}.jp-card-logo.jp-card-visaelectron{background:white;text-transform:uppercase;color:#1A1876;text-align:center;font-weight:bold;font-size:15px;line-height:18px}.jp-card-logo.jp-card-visaelectron:before,.jp-card-logo.jp-card-visaelectron:after{content:" ";display:block;width:100%;height:25%}.jp-card-logo.jp-card-visaelectron:before{background:#1A1876}.jp-card-logo.jp-card-visaelectron:after{background:#E79800}.jp-card-logo.jp-card-visaelectron .elec{float:right;font-family:arial;font-size:9px;margin-right:1px;margin-top:-5px;text-transform:none}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-front:before,.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-back:before{background-color:#191278}.jp-card.jp-card-visaelectron.jp-card-identified .jp-card-logo.jp-card-visaelectron{opacity:1}.jp-card-logo.jp-card-mastercard{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:9px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-mastercard:before,.jp-card-logo.jp-card-mastercard:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-mastercard:before{left:0;background:#EB001B;z-index:-1;opacity:0.9}.jp-card-logo.jp-card-mastercard:after{right:0;background:#FF5F00;z-index:-2}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front .jp-card-logo.jp-card-mastercard,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back .jp-card-logo.jp-card-mastercard{box-shadow:none}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-front:before,.jp-card.jp-card-mastercard.jp-card-identified .jp-card-back:before{background-color:#0061A8}.jp-card.jp-card-mastercard.jp-card-identified .jp-card-logo.jp-card-mastercard{opacity:1}.jp-card-logo.jp-card-maestro{color:white;font-style:normal;text-transform:lowercase;font-weight:bold;text-align:center;font-size:14px;line-height:84px;z-index:1;text-shadow:1px 1px rgba(0,0,0,0.6)}.jp-card-logo.jp-card-maestro:before,.jp-card-logo.jp-card-maestro:after{content:" ";display:block;width:36px;top:0;position:absolute;height:36px;border-radius:18px}.jp-card-logo.jp-card-maestro:before{left:0;background:#EB001B;z-index:-2}.jp-card-logo.jp-card-maestro:after{right:0;background:#00A2E5;z-index:-1;opacity:0.8}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front .jp-card-logo.jp-card-maestro,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back .jp-card-logo.jp-card-maestro{box-shadow:none}.jp-card.jp-card-maestro.jp-card-identified .jp-card-front:before,.jp-card.jp-card-maestro.jp-card-identified .jp-card-back:before{background-color:#0B2C5F}.jp-card.jp-card-maestro.jp-card-identified .jp-card-logo.jp-card-maestro{opacity:1}.jp-card-logo.jp-card-dankort{width:60px;height:36px;padding:3px;border-radius:8px;border:#000 1px solid;background-color:#fff}.jp-card-logo.jp-card-dankort .dk{position:relative;width:100%;height:100%;overflow:hidden}.jp-card-logo.jp-card-dankort .dk:before{background-color:#ED1C24;content:\'\';position:absolute;width:100%;height:100%;display:block;border-radius:6px}.jp-card-logo.jp-card-dankort .dk:after{content:\'\';position:absolute;top:50%;margin-top:-7.7px;right:0;width:0;height:0;border-style:solid;border-width:7px 7px 10px 0;border-color:transparent #ED1C24 transparent transparent;z-index:1}.jp-card-logo.jp-card-dankort .d,.jp-card-logo.jp-card-dankort .k{position:absolute;top:50%;width:50%;display:block;height:15.4px;margin-top:-7.7px;background:white}.jp-card-logo.jp-card-dankort .d{left:0;border-radius:0 8px 10px 0}.jp-card-logo.jp-card-dankort .d:before{content:\'\';position:absolute;top:50%;left:50%;display:block;background:#ED1C24;border-radius:2px 4px 6px 0px;height:5px;width:7px;margin:-3px 0 0 -4px}.jp-card-logo.jp-card-dankort .k{right:0}.jp-card-logo.jp-card-dankort .k:before,.jp-card-logo.jp-card-dankort .k:after{content:\'\';position:absolute;right:50%;width:0;height:0;border-style:solid;margin-right:-1px}.jp-card-logo.jp-card-dankort .k:before{top:0;border-width:8px 5px 0 0;border-color:#ED1C24 transparent transparent transparent}.jp-card-logo.jp-card-dankort .k:after{bottom:0;border-width:0 5px 8px 0;border-color:transparent transparent #ED1C24 transparent}.jp-card.jp-card-dankort.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dankort.jp-card-identified .jp-card-back:before{background-color:#0055C7}.jp-card.jp-card-dankort.jp-card-identified .jp-card-logo.jp-card-dankort{opacity:1}.jp-card-logo.jp-card-elo{height:50px;width:50px;border-radius:100%;background:black;color:white;text-align:center;text-transform:lowercase;font-size:21px;font-style:normal;letter-spacing:1px;font-weight:bold;padding-top:13px}.jp-card-logo.jp-card-elo .e,.jp-card-logo.jp-card-elo .l,.jp-card-logo.jp-card-elo .o{display:inline-block;position:relative}.jp-card-logo.jp-card-elo .e{-webkit-transform:rotate(-15deg);-moz-transform:rotate(-15deg);-ms-transform:rotate(-15deg);-o-transform:rotate(-15deg);transform:rotate(-15deg)}.jp-card-logo.jp-card-elo .o{position:relative;display:inline-block;width:12px;height:12px;right:0;top:7px;border-radius:100%;background-image:-webkit-linear-gradient( #ff0 50%,red 50%);background-image:linear-gradient( #ff0 50%,red 50%);-webkit-transform:rotate(40deg);-moz-transform:rotate(40deg);-ms-transform:rotate(40deg);-o-transform:rotate(40deg);transform:rotate(40deg);text-indent:-9999px}.jp-card-logo.jp-card-elo .o:before{content:"";position:absolute;width:49%;height:49%;background:black;border-radius:100%;text-indent:-99999px;top:25%;left:25%}.jp-card.jp-card-elo.jp-card-identified .jp-card-front:before,.jp-card.jp-card-elo.jp-card-identified .jp-card-back:before{background-color:#6F6969}.jp-card.jp-card-elo.jp-card-identified .jp-card-logo.jp-card-elo{opacity:1}.jp-card-logo.jp-card-jcb{border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px;background-color:white;font-style:normal;color:white;width:50px;padding:2px 0 0 2px}.jp-card-logo.jp-card-jcb>div{width:15px;margin-right:1px;display:inline-block;text-align:center;text-shadow:1px 1px rgba(0,0,0,0.6);border-radius:5px 0px 5px 0px;-moz-border-radius:5px 0px 5px 0px;-webkit-border-radius:5px 0px 5px 0px}.jp-card-logo.jp-card-jcb>div:before,.jp-card-logo.jp-card-jcb>div:after{content:" ";display:block;height:8px}.jp-card-logo.jp-card-jcb>div.j{background-color:#000063;background-image:-webkit-linear-gradient(left, #000063,#008cff);background-image:linear-gradient(to right,#000063,#008cff)}.jp-card-logo.jp-card-jcb>div.c{background-color:#630000;background-image:-webkit-linear-gradient(left, #630000,#ff008d);background-image:linear-gradient(to right,#630000,#ff008d)}.jp-card-logo.jp-card-jcb>div.b{background-color:#006300;background-image:-webkit-linear-gradient(left, #006300,lime);background-image:linear-gradient(to right,#006300,lime)}.jp-card.jp-card-jcb.jp-card-identified .jp-card-front:before,.jp-card.jp-card-jcb.jp-card-identified .jp-card-back:before{background-color:#CB8000}.jp-card.jp-card-jcb.jp-card-identified .jp-card-logo.jp-card-jcb{opacity:1;box-shadow:none}.jp-card-logo.jp-card-dinersclub{font-family:serif;height:40px;width:100px;color:white;font-size:17px;font-style:normal;letter-spacing:1px}.jp-card-logo.jp-card-dinersclub::before,.jp-card-logo.jp-card-dinersclub::after{display:block;position:relative}.jp-card-logo.jp-card-dinersclub::before{content:\'Diners Club\'}.jp-card-logo.jp-card-dinersclub::after{content:\'International\';text-transform:uppercase;font-size:0.6em}.jp-card.jp-card-dinersclub .jp-card-front .jp-card-logo{box-shadow:none !important}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-front:before,.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-back:before{background-color:#999}.jp-card.jp-card-dinersclub.jp-card-identified .jp-card-logo.jp-card-dinersclub{opacity:1}.jp-card-logo.jp-card-hipercard{height:20px;width:100px;color:white;font-size:21px;font-style:italic;font-weight:bold}.jp-card-logo.jp-card-hipercard::before,.jp-card-logo.jp-card-hipercard::after{display:block;position:relative}.jp-card.jp-card-hipercard.jp-card-identified .jp-card-front:before,.jp-card.jp-card-hipercard.jp-card-identified .jp-card-back:before{background-color:#770304}.jp-card.jp-card-hipercard.jp-card-identified .jp-card-logo.jp-card-hipercard{opacity:1;box-shadow:none}.jp-card-logo.jp-card-troy{text-transform:lowercase;color:#fff;text-align:center;font-weight:700;font-size:24px;line-height:18px;margin-top:5px}.jp-card-logo.jp-card-troy:before,.jp-card-logo.jp-card-troy:after{content:\\"\\";display:block;width:26%;height:6%;background:#22b8c3;right:32%;top:24%;position:absolute;transform:rotate(105deg)}.jp-card.jp-card-troy.jp-card-identified .jp-card-front:before,.jp-card.jp-card-troy.jp-card-identified .jp-card-back:before{background-color:#01adba}.jp-card.jp-card-troy.jp-card-identified .jp-card-logo.jp-card-troy{opacity:1;box-shadow:none}.jp-card-container{-webkit-perspective:1000px;-moz-perspective:1000px;perspective:1000px;width:350px;max-width:100%;height:200px;margin:auto;z-index:1;position:relative}.jp-card{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;line-height:1;position:relative;width:100%;height:100%;min-width:315px;border-radius:10px;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear}.jp-card>*,.jp-card>*:after,.jp-card>*:before{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box;font-family:inherit}.jp-card.jp-card-flipped{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-back,.jp-card .jp-card-front{-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;-o-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:all 400ms linear;-moz-transition:all 400ms linear;transition:all 400ms linear;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden;border-radius:10px;background:#ddd}.jp-card .jp-card-back:before,.jp-card .jp-card-front:before{content:" ";display:block;position:absolute;width:100%;height:100%;top:0;left:0;opacity:0;border-radius:10px;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease}.jp-card .jp-card-back:after,.jp-card .jp-card-front:after{content:" ";display:block}.jp-card .jp-card-back .jp-card-display,.jp-card .jp-card-front .jp-card-display{color:#fff;font-weight:normal;opacity:0.5;-webkit-transition:opacity 400ms linear;-moz-transition:opacity 400ms linear;transition:opacity 400ms linear}.jp-card .jp-card-back .jp-card-display.jp-card-focused,.jp-card .jp-card-front .jp-card-display.jp-card-focused{opacity:1;font-weight:700}.jp-card .jp-card-back .jp-card-cvc,.jp-card .jp-card-front .jp-card-cvc{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:14px}.jp-card .jp-card-back .jp-card-shiny,.jp-card .jp-card-front .jp-card-shiny{width:50px;height:35px;border-radius:5px;background:#ccc;position:relative}.jp-card .jp-card-back .jp-card-shiny:before,.jp-card .jp-card-front .jp-card-shiny:before{content:" ";display:block;width:70%;height:60%;border-top-right-radius:5px;border-bottom-right-radius:5px;background:#d9d9d9;position:absolute;top:20%}.jp-card .jp-card-front .jp-card-logo{position:absolute;opacity:0;right:5%;top:8%;-webkit-transition:400ms;-moz-transition:400ms;transition:400ms}.jp-card .jp-card-front .jp-card-lower{width:80%;position:absolute;left:10%;bottom:30px}@media only screen and (max-width: 480px){.jp-card .jp-card-front .jp-card-lower{width:90%;left:5%}}.jp-card .jp-card-front .jp-card-lower .jp-card-cvc{visibility:hidden;float:right;position:relative;bottom:5px}.jp-card .jp-card-front .jp-card-lower .jp-card-number{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:24px;clear:both;margin-bottom:30px}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry{font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;letter-spacing:0;position:relative;float:right;width:25%}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after,.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-weight:bold;font-size:7px;white-space:pre;display:block;opacity:0.5}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:before{content:attr(data-before);margin-bottom:2px;font-size:7px;text-transform:uppercase}.jp-card .jp-card-front .jp-card-lower .jp-card-expiry:after{position:absolute;content:attr(data-after);text-align:right;right:100%;margin-right:5px;margin-top:2px;bottom:0}.jp-card .jp-card-front .jp-card-lower .jp-card-name{text-transform:uppercase;font-family:"Bitstream Vera Sans Mono",Consolas,Courier,monospace;font-size:20px;max-height:45px;position:absolute;bottom:0;width:190px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:horizontal;overflow:hidden;text-overflow:ellipsis}.jp-card .jp-card-back{-webkit-transform:rotateY(180deg);-moz-transform:rotateY(180deg);-ms-transform:rotateY(180deg);-o-transform:rotateY(180deg);transform:rotateY(180deg)}.jp-card .jp-card-back .jp-card-bar{background-color:#444;background-image:-webkit-linear-gradient(#444,#333);background-image:linear-gradient(#444,#333);width:100%;height:20%;position:absolute;top:10%}.jp-card .jp-card-back:after{content:" ";display:block;background-color:#fff;background-image:-webkit-linear-gradient(#fff,#fff);background-image:linear-gradient(#fff,#fff);width:80%;height:16%;position:absolute;top:40%;left:2%}.jp-card .jp-card-back .jp-card-cvc{position:absolute;top:40%;left:85%;-webkit-transition-delay:600ms;-moz-transition-delay:600ms;transition-delay:600ms}.jp-card .jp-card-back .jp-card-shiny{position:absolute;top:66%;left:2%}.jp-card .jp-card-back .jp-card-shiny:after{content:"This card has been issued by Jesse Pollak and is licensed for anyone to use anywhere for free. It comes with no warranty. For support issues, please visit: github.com/jessepollak/card.";position:absolute;left:120%;top:5%;color:white;font-size:7px;width:230px;opacity:0.5}.jp-card.jp-card-identified{box-shadow:0 0 20px rgba(0,0,0,0.3)}.jp-card.jp-card-identified .jp-card-back,.jp-card.jp-card-identified .jp-card-front{background-color:#000;background-color:rgba(0,0,0,0.5)}.jp-card.jp-card-identified .jp-card-back:before,.jp-card.jp-card-identified .jp-card-front:before{-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;transition:all 400ms ease;background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 30% 30%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 70% 70%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 90% 20%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-radial-gradient(circle at 15% 80%, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);opacity:1}.jp-card.jp-card-identified .jp-card-back .jp-card-logo,.jp-card.jp-card-identified .jp-card-front .jp-card-logo{box-shadow:0 0 0 2px rgba(255,255,255,0.3)}.jp-card.jp-card-identified.no-radial-gradient .jp-card-back:before,.jp-card.jp-card-identified.no-radial-gradient .jp-card-front:before{background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),-webkit-linear-gradient(-245deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%);background-image:repeating-linear-gradient(45deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(135deg, rgba(255,255,255,0.05) 1px, rgba(255,255,255,0) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.03) 4px),repeating-linear-gradient(90deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),repeating-linear-gradient(210deg, rgba(255,255,255,0) 1px, rgba(255,255,255,0.03) 2px, rgba(255,255,255,0.04) 3px, rgba(255,255,255,0.05) 4px),linear-gradient(-25deg, rgba(255,255,255,0) 50%,rgba(255,255,255,0.2) 70%,rgba(255,255,255,0) 90%)}@media (max-width: 450px){.card-wrapper{max-width:80vw;width:100%;margin:20px auto;overflow-x:hidden}.card-wrapper>.jp-card-container{transform:scale(0.625);transform-origin:left center}}\n',""]);const d=i},645:r=>{"use strict";r.exports=function(r){var e=[];return e.toString=function(){return this.map((function(e){var t="",a=void 0!==e[5];return e[4]&&(t+="@supports (".concat(e[4],") {")),e[2]&&(t+="@media ".concat(e[2]," {")),a&&(t+="@layer".concat(e[5].length>0?" ".concat(e[5]):""," {")),t+=r(e),a&&(t+="}"),e[2]&&(t+="}"),e[4]&&(t+="}"),t})).join("")},e.i=function(r,t,a,n,o){"string"==typeof r&&(r=[[null,r,void 0]]);var i={};if(a)for(var d=0;d<this.length;d++){var c=this[d][0];null!=c&&(i[c]=!0)}for(var p=0;p<r.length;p++){var l=[].concat(r[p]);a&&i[l[0]]||(void 0!==o&&(void 0===l[5]||(l[1]="@layer".concat(l[5].length>0?" ".concat(l[5]):""," {").concat(l[1],"}")),l[5]=o),t&&(l[2]?(l[1]="@media ".concat(l[2]," {").concat(l[1],"}"),l[2]=t):l[2]=t),n&&(l[4]?(l[1]="@supports (".concat(l[4],") {").concat(l[1],"}"),l[4]=n):l[4]="".concat(n)),e.push(l))}},e}},81:r=>{"use strict";r.exports=function(r){return r[1]}},648:r=>{"use strict";var e="Function.prototype.bind called on incompatible ",t=Array.prototype.slice,a=Object.prototype.toString,n="[object Function]";r.exports=function(r){var o=this;if("function"!=typeof o||a.call(o)!==n)throw new TypeError(e+o);for(var i,d=t.call(arguments,1),c=function(){if(this instanceof i){var e=o.apply(this,d.concat(t.call(arguments)));return Object(e)===e?e:this}return o.apply(r,d.concat(t.call(arguments)))},p=Math.max(0,o.length-d.length),l=[],s=0;s<p;s++)l.push("$"+s);if(i=Function("binder","return function ("+l.join(",")+"){ return binder.apply(this,arguments); }")(c),o.prototype){var f=function(){};f.prototype=o.prototype,i.prototype=new f,f.prototype=null}return i}},612:(r,e,t)=>{"use strict";var a=t(648);r.exports=Function.prototype.bind||a},221:r=>{"use strict";"undefined"!=typeof self?r.exports=self:"undefined"!=typeof window?r.exports=window:r.exports=Function("return this")()},168:(r,e,t)=>{"use strict";var a=t(221);r.exports=function(){return"object"==typeof t.g&&t.g&&t.g.Math===Math&&t.g.Array===Array?t.g:a}},642:(r,e,t)=>{"use strict";var a=t(612);r.exports=a.call(Function.call,Object.prototype.hasOwnProperty)},452:r=>{"use strict";var e,t,a=Object.prototype,n=a.hasOwnProperty,o=a.toString;"function"==typeof Symbol&&(e=Symbol.prototype.valueOf),"function"==typeof BigInt&&(t=BigInt.prototype.valueOf);var i=function(r){return r!=r},d={boolean:1,number:1,string:1,undefined:1},c=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/,p=/^[A-Fa-f0-9]+$/,l={};l.a=l.type=function(r,e){return typeof r===e},l.defined=function(r){return void 0!==r},l.empty=function(r){var e,t=o.call(r);if("[object Array]"===t||"[object Arguments]"===t||"[object String]"===t)return 0===r.length;if("[object Object]"===t){for(e in r)if(n.call(r,e))return!1;return!0}return!r},l.equal=function(r,e){if(r===e)return!0;var t,a=o.call(r);if(a!==o.call(e))return!1;if("[object Object]"===a){for(t in r)if(!l.equal(r[t],e[t])||!(t in e))return!1;for(t in e)if(!l.equal(r[t],e[t])||!(t in r))return!1;return!0}if("[object Array]"===a){if((t=r.length)!==e.length)return!1;for(;t--;)if(!l.equal(r[t],e[t]))return!1;return!0}return"[object Function]"===a?r.prototype===e.prototype:"[object Date]"===a&&r.getTime()===e.getTime()},l.hosted=function(r,e){var t=typeof e[r];return"object"===t?!!e[r]:!d[t]},l.instance=l.instanceof=function(r,e){return r instanceof e},l.nil=l.null=function(r){return null===r},l.undef=l.undefined=function(r){return void 0===r},l.args=l.arguments=function(r){var e="[object Arguments]"===o.call(r),t=!l.array(r)&&l.arraylike(r)&&l.object(r)&&l.fn(r.callee);return e||t},l.array=Array.isArray||function(r){return"[object Array]"===o.call(r)},l.args.empty=function(r){return l.args(r)&&0===r.length},l.array.empty=function(r){return l.array(r)&&0===r.length},l.arraylike=function(r){return!!r&&!l.bool(r)&&n.call(r,"length")&&isFinite(r.length)&&l.number(r.length)&&r.length>=0},l.bool=l.boolean=function(r){return"[object Boolean]"===o.call(r)},l.false=function(r){return l.bool(r)&&!1===Boolean(Number(r))},l.true=function(r){return l.bool(r)&&!0===Boolean(Number(r))},l.date=function(r){return"[object Date]"===o.call(r)},l.date.valid=function(r){return l.date(r)&&!isNaN(Number(r))},l.element=function(r){return void 0!==r&&"undefined"!=typeof HTMLElement&&r instanceof HTMLElement&&1===r.nodeType},l.error=function(r){return"[object Error]"===o.call(r)},l.fn=l.function=function(r){if("undefined"!=typeof window&&r===window.alert)return!0;var e=o.call(r);return"[object Function]"===e||"[object GeneratorFunction]"===e||"[object AsyncFunction]"===e},l.number=function(r){return"[object Number]"===o.call(r)},l.infinite=function(r){return r===1/0||r===-1/0},l.decimal=function(r){return l.number(r)&&!i(r)&&!l.infinite(r)&&r%1!=0},l.divisibleBy=function(r,e){var t=l.infinite(r),a=l.infinite(e),n=l.number(r)&&!i(r)&&l.number(e)&&!i(e)&&0!==e;return t||a||n&&r%e==0},l.integer=l.int=function(r){return l.number(r)&&!i(r)&&r%1==0},l.maximum=function(r,e){if(i(r))throw new TypeError("NaN is not a valid value");if(!l.arraylike(e))throw new TypeError("second argument must be array-like");for(var t=e.length;--t>=0;)if(r<e[t])return!1;return!0},l.minimum=function(r,e){if(i(r))throw new TypeError("NaN is not a valid value");if(!l.arraylike(e))throw new TypeError("second argument must be array-like");for(var t=e.length;--t>=0;)if(r>e[t])return!1;return!0},l.nan=function(r){return!l.number(r)||r!=r},l.even=function(r){return l.infinite(r)||l.number(r)&&r==r&&r%2==0},l.odd=function(r){return l.infinite(r)||l.number(r)&&r==r&&r%2!=0},l.ge=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r>=e},l.gt=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r>e},l.le=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r<=e},l.lt=function(r,e){if(i(r)||i(e))throw new TypeError("NaN is not a valid value");return!l.infinite(r)&&!l.infinite(e)&&r<e},l.within=function(r,e,t){if(i(r)||i(e)||i(t))throw new TypeError("NaN is not a valid value");if(!l.number(r)||!l.number(e)||!l.number(t))throw new TypeError("all arguments must be numbers");return l.infinite(r)||l.infinite(e)||l.infinite(t)||r>=e&&r<=t},l.object=function(r){return"[object Object]"===o.call(r)},l.primitive=function(r){return!r||!("object"==typeof r||l.object(r)||l.fn(r)||l.array(r))},l.hash=function(r){return l.object(r)&&r.constructor===Object&&!r.nodeType&&!r.setInterval},l.regexp=function(r){return"[object RegExp]"===o.call(r)},l.string=function(r){return"[object String]"===o.call(r)},l.base64=function(r){return l.string(r)&&(!r.length||c.test(r))},l.hex=function(r){return l.string(r)&&(!r.length||p.test(r))},l.symbol=function(r){return"function"==typeof Symbol&&"[object Symbol]"===o.call(r)&&"symbol"==typeof e.call(r)},l.bigint=function(r){return"function"==typeof BigInt&&"[object BigInt]"===o.call(r)&&"bigint"==typeof t.call(r)},r.exports=l},907:(r,e,t)=>{"use strict";r.exports=t(886)},886:(r,e,t)=>{"use strict";var a=t(452),n=t(642),o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,d=function(r,e,t){o&&"__proto__"===e?o(r,e,{enumerable:!0,configurable:!0,value:t,writable:!0}):r[e]=t},c=function(r,e){if("__proto__"===e){if(!n(r,e))return;if(i)return i(r,e).value}return r[e]};r.exports=function r(){var e,t,n,o,i,p,l=arguments[0]||{},s=1,f=arguments.length,g=!1;for("boolean"==typeof l&&(g=l,l=arguments[1]||{},s=2),"object"==typeof l||a.fn(l)||(l={});s<f;s++)if(null!=(e=arguments[s]))for(t in"string"==typeof e&&(e=e.split("")),e)n=c(l,t),l!==(o=c(e,t))&&(g&&o&&(a.hash(o)||(i=a.array(o)))?(i?(i=!1,p=n&&a.array(n)?n:[]):p=n&&a.hash(n)?n:{},d(l,t,r(g,p,o))):void 0!==o&&d(l,t,o));return l}},28:function(r,e,t){(function(){var e,a,n,o,i,d,c,p,l,s,f,g,u,j,b,h,m,v,x,y,k,w,C,E,$,z,D=[].indexOf||function(r){for(var e=0,t=this.length;e<t;e++)if(e in this&&this[e]===r)return e;return-1};b=t(168)(),a=t(202),i=[{type:"amex",pattern:/^3[47]/,format:/(\d{1,4})(\d{1,6})?(\d{1,5})?/,length:[15],cvcLength:[4],luhn:!0},{type:"dankort",pattern:/^5019/,format:c=/(\d{1,4})/g,length:[16],cvcLength:[3],luhn:!0},{type:"dinersclub",pattern:/^(36|38|30[0-5])/,format:/(\d{1,4})(\d{1,6})?(\d{1,4})?/,length:[14],cvcLength:[3],luhn:!0},{type:"discover",pattern:/^(6011|65|64[4-9]|622)/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"elo",pattern:/^401178|^401179|^431274|^438935|^451416|^457393|^457631|^457632|^504175|^627780|^636297|^636369|^636368|^(506699|5067[0-6]\d|50677[0-8])|^(50900\d|5090[1-9]\d|509[1-9]\d{2})|^65003[1-3]|^(65003[5-9]|65004\d|65005[0-1])|^(65040[5-9]|6504[1-3]\d)|^(65048[5-9]|65049\d|6505[0-2]\d|65053[0-8])|^(65054[1-9]|6505[5-8]\d|65059[0-8])|^(65070\d|65071[0-8])|^65072[0-7]|^(65090[1-9]|65091\d|650920)|^(65165[2-9]|6516[6-7]\d)|^(65500\d|65501\d)|^(65502[1-9]|6550[3-4]\d|65505[0-8])|^(65092[1-9]|65097[0-8])/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"hipercard",pattern:/^(384100|384140|384160|606282|637095|637568|60(?!11))/,format:c,length:[14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"jcb",pattern:/^(308[8-9]|309[0-3]|3094[0]{4}|309[6-9]|310[0-2]|311[2-9]|3120|315[8-9]|333[7-9]|334[0-9]|35)/,format:c,length:[16,19],cvcLength:[3],luhn:!0},{type:"laser",pattern:/^(6706|6771|6709)/,format:c,length:[16,17,18,19],cvcLength:[3],luhn:!0},{type:"maestro",pattern:/^(50|5[6-9]|6007|6220|6304|6703|6708|6759|676[1-3])/,format:c,length:[12,13,14,15,16,17,18,19],cvcLength:[3],luhn:!0},{type:"mastercard",pattern:/^(5[1-5]|677189)|^(222[1-9]|2[3-6]\d{2}|27[0-1]\d|2720)/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"mir",pattern:/^220[0-4][0-9][0-9]\d{10}$/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"troy",pattern:/^9792/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"unionpay",pattern:/^62/,format:c,length:[16,17,18,19],cvcLength:[3],luhn:!1},{type:"visaelectron",pattern:/^4(026|17500|405|508|844|91[37])/,format:c,length:[16],cvcLength:[3],luhn:!0},{type:"visa",pattern:/^4/,format:c,length:[13,16],cvcLength:[3],luhn:!0}],n=function(r){var e,t,a,n,o;for(r=(r+"").replace(/\D/g,""),t=void 0,a=0,n=i.length;a<n;a++)e=i[a],(o=r.match(e.pattern))&&(!t||o[0].length>t[1][0].length)&&(t=[e,o]);return t&&t[0]},o=function(r){var e,t,a;for(t=0,a=i.length;t<a;t++)if((e=i[t]).type===r)return e},m=function(r){var e,t,a,n,o,i;for(o=!0,i=0,a=0,n=(t=(r+"").split("").reverse()).length;a<n;a++)e=t[a],e=parseInt(e,10),(o=!o)&&(e*=2),e>9&&(e-=9),i+=e;return i%10==0},h=function(r){var e;try{if(null!=r.selectionStart&&r.selectionStart!==r.selectionEnd)return!0;if(null!=("undefined"!=typeof document&&null!==document&&null!=(e=document.selection)?e.createRange:void 0)&&document.selection.createRange().text)return!0}catch(r){}return!1},v=function(r){return setTimeout((function(){var t,n;return t=r.target,n=a.val(t),n=e.fns.formatCardNumber(n),d(t,n),a.trigger(t,"change")}))},s=function(r){return function(e){var t,o,i,d,c,p,l,s,f,g,u;if(e.which>0?(o=String.fromCharCode(e.which),u=a.val(e.target)+o):(o=e.data,u=a.val(e.target)),/^\d+$/.test(o)){for(s=e.target,t=n(u),p=u.replace(/\D/g,"").length,g=[16],t&&(g=t.length),r&&(g=g.filter((function(e){return e<=r}))),i=d=0,c=g.length;d<c;i=++d)if(!(p>=(f=g[i])&&g[i+1])&&p>=f)return;if(!h(s))return l=t&&"amex"===t.type?/^(\d{4}|\d{4}\s\d{6})$/:/(?:^|\s)(\d{4})$/,u=u.substring(0,u.length-1),l.test(u)?(e.preventDefault(),a.val(s,u+" "+o),a.trigger(s,"change")):void 0}}},p=function(r){var e,t;if(e=r.target,t=a.val(e),!r.meta&&8===r.which&&!h(e))return/\d\s$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\d\s$/,"")),a.trigger(e,"change")):/\s\d?$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\s\d?$/,"")),a.trigger(e,"change")):void 0},f=function(r){var e,t,n;if(t=r.target,r.which>0?(e=String.fromCharCode(r.which),n=a.val(t)+e):(e=r.data,n=a.val(t)),/^\d+$/.test(e))return/^\d$/.test(n)&&"0"!==n&&"1"!==n?(r.preventDefault(),a.val(t,"0"+n+" / "),a.trigger(t,"change")):/^\d\d$/.test(n)?(r.preventDefault(),a.val(t,n+" / "),a.trigger(t,"change")):void 0},j=function(r){var e,t,n;if(e=String.fromCharCode(r.which),/^\d+$/.test(e))return t=r.target,n=a.val(t)+e,/^\d$/.test(n)&&"0"!==n&&"1"!==n?(r.preventDefault(),a.val(t,"0"+n),a.trigger(t,"change")):/^\d\d$/.test(n)?(r.preventDefault(),a.val(t,""+n),a.trigger(t,"change")):void 0},g=function(r){var e,t,n;if(e=String.fromCharCode(r.which),/^\d+$/.test(e))return t=r.target,n=a.val(t),/^\d\d$/.test(n)?(a.val(t,n+" / "),a.trigger(t,"change")):void 0},u=function(r){var e,t;if("/"===String.fromCharCode(r.which))return e=r.target,t=a.val(e),/^\d$/.test(t)&&"0"!==t?(a.val(e,"0"+t+" / "),a.trigger(e,"change")):void 0},l=function(r){var e,t;if(!r.metaKey&&(e=r.target,t=a.val(e),8===r.which&&!h(e)))return/\d(\s|\/)+$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\d(\s|\/)*$/,"")),a.trigger(e,"change")):/\s\/\s?\d?$/.test(t)?(r.preventDefault(),a.val(e,t.replace(/\s\/\s?\d?$/,"")),a.trigger(e,"change")):void 0},E=function(r){var e;return!(!r.metaKey&&!r.ctrlKey)||(32===r.which?r.preventDefault():0===r.which||r.which<33||(e=String.fromCharCode(r.which),/[\d\s]/.test(e)?void 0:r.preventDefault()))},y=function(r){return function(e){var t,o,i,d,c;if(d=e.target,o=String.fromCharCode(e.which),/^\d+$/.test(o)&&!h(d))return c=(a.val(d)+o).replace(/\D/g,""),i=16,(t=n(c))&&(i=t.length[t.length.length-1]),r&&(i=Math.min(i,r)),c.length<=i?void 0:e.preventDefault()}},w=function(r,e){var t,n;if(n=r.target,t=String.fromCharCode(r.which),/^\d+$/.test(t)&&!h(n))return(a.val(n)+t).replace(/\D/g,"").length>e?r.preventDefault():void 0},k=function(r){return w(r,6)},C=function(r){return w(r,2)},$=function(r){return w(r,4)},x=function(r){var e,t;if(t=r.target,e=String.fromCharCode(r.which),/^\d+$/.test(e)&&!h(t))return(a.val(t)+e).length<=4?void 0:r.preventDefault()},z=function(r){var t,n,o,d,c;if(d=r.target,c=a.val(d),o=e.fns.cardType(c)||"unknown",!a.hasClass(d,o))return t=function(){var r,e,t;for(t=[],r=0,e=i.length;r<e;r++)n=i[r],t.push(n.type);return t}(),a.removeClass(d,"unknown"),a.removeClass(d,t.join(" ")),a.addClass(d,o),a.toggleClass(d,"identified","unknown"!==o),a.trigger(d,"payment.cardType",o)},d=function(r,e){var t;if(t=r.selectionEnd,a.val(r,e),t)return r.selectionEnd=t},e=function(){function r(){}return r.J=a,r.fns={cardExpiryVal:function(r){var e,t,a;return e=(t=(r=r.replace(/\s/g,"")).split("/",2))[0],2===(null!=(a=t[1])?a.length:void 0)&&/^\d+$/.test(a)&&(a=(new Date).getFullYear().toString().slice(0,2)+a),{month:e=parseInt(e,10),year:a=parseInt(a,10)}},validateCardNumber:function(r){var e,t;return r=(r+"").replace(/\s+|-/g,""),!!/^\d+$/.test(r)&&!!(e=n(r))&&(t=r.length,D.call(e.length,t)>=0&&(!1===e.luhn||m(r)))},validateCardExpiry:function(e,t){var n,o,i,d;return"object"==typeof e&&"month"in e?(e=(i=e).month,t=i.year):"string"==typeof e&&D.call(e,"/")>=0&&(e=(d=r.fns.cardExpiryVal(e)).month,t=d.year),!(!e||!t)&&(e=a.trim(e),t=a.trim(t),!!/^\d+$/.test(e)&&!!/^\d+$/.test(t)&&!!((e=parseInt(e,10))&&e<=12)&&(2===t.length&&(t=(new Date).getFullYear().toString().slice(0,2)+t),o=new Date(t,e),n=new Date,o.setMonth(o.getMonth()-1),o.setMonth(o.getMonth()+1,1),o>n))},validateCardCVC:function(r,e){var t,n;return r=a.trim(r),!!/^\d+$/.test(r)&&(e&&o(e)?(t=r.length,D.call(null!=(n=o(e))?n.cvcLength:void 0,t)>=0):r.length>=3&&r.length<=4)},cardType:function(r){var e;return r&&(null!=(e=n(r))?e.type:void 0)||null},formatCardNumber:function(r){var e,t,a,o;return(e=n(r))?(o=e.length[e.length.length-1],r=(r=r.replace(/\D/g,"")).slice(0,o),e.format.global?null!=(a=r.match(e.format))?a.join(" "):void 0:null!=(t=e.format.exec(r))?(t.shift(),(t=t.filter((function(r){return r}))).join(" ")):void 0):r}},r.restrictNumeric=function(r){return a.on(r,"keypress",E),a.on(r,"input",E)},r.cardExpiryVal=function(e){return r.fns.cardExpiryVal(a.val(e))},r.formatCardCVC=function(e){return r.restrictNumeric(e),a.on(e,"keypress",x),a.on(e,"input",x),e},r.formatCardExpiry=function(e){var t,n;return r.restrictNumeric(e),e.length&&2===e.length?(t=e[0],n=e[1],this.formatCardExpiryMultiple(t,n)):(a.on(e,"keypress",k),a.on(e,"keypress",f),a.on(e,"keypress",u),a.on(e,"keypress",g),a.on(e,"keydown",l),a.on(e,"input",f)),e},r.formatCardExpiryMultiple=function(r,e){return a.on(r,"keypress",C),a.on(r,"keypress",j),a.on(r,"input",j),a.on(e,"keypress",$),a.on(e,"input",$)},r.formatCardNumber=function(e,t){return r.restrictNumeric(e),a.on(e,"keypress",y(t)),a.on(e,"keypress",s(t)),a.on(e,"keydown",p),a.on(e,"keyup blur",z),a.on(e,"blur",s(t)),a.on(e,"paste",v),a.on(e,"input",s(t)),e},r.getCardArray=function(){return i},r.setCardArray=function(r){return i=r,!0},r.addToCardArray=function(r){return i.push(r)},r.removeFromCardArray=function(r){var e;for(e in i)i[e].type===r&&i.splice(e,1);return!0},r}(),r.exports=e,b.Payment=e}).call(this)},202:function(r){(function(){var e,t,a;(e=function(r){return e.isDOMElement(r)?r:document.querySelectorAll(r)}).isDOMElement=function(r){return r&&null!=r.nodeName},a=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,e.trim=function(r){return null===r?"":(r+"").replace(a,"")},t=/\r/g,e.val=function(r,e){var a;return arguments.length>1?r.value=e:"string"==typeof(a=r.value)?a.replace(t,""):null===a?"":a},e.preventDefault=function(r){if("function"!=typeof r.preventDefault)return r.returnValue=!1,!1;r.preventDefault()},e.normalizeEvent=function(r){var t;return null==(r={which:null!=(t=r).which?t.which:void 0,target:t.target||t.srcElement,preventDefault:function(){return e.preventDefault(t)},originalEvent:t,data:t.data||t.detail}).which&&(r.which=null!=t.charCode?t.charCode:t.keyCode),r},e.on=function(r,t,a){var n,o,i,d,c,p,l,s;if(r.length)for(o=0,d=r.length;o<d;o++)n=r[o],e.on(n,t,a);else{if(!t.match(" "))return l=a,a=function(r){return r=e.normalizeEvent(r),l(r)},r.addEventListener?r.addEventListener(t,a,!1):r.attachEvent?(t="on"+t,r.attachEvent(t,a)):void(r["on"+t]=a);for(i=0,c=(s=t.split(" ")).length;i<c;i++)p=s[i],e.on(r,p,a)}},e.addClass=function(r,t){var a;return r.length?function(){var n,o,i;for(i=[],n=0,o=r.length;n<o;n++)a=r[n],i.push(e.addClass(a,t));return i}():r.classList?r.classList.add(t):r.className+=" "+t},e.hasClass=function(r,t){var a,n,o,i;if(r.length){for(n=!0,o=0,i=r.length;o<i;o++)a=r[o],n=n&&e.hasClass(a,t);return n}return r.classList?r.classList.contains(t):new RegExp("(^| )"+t+"( |$)","gi").test(r.className)},e.removeClass=function(r,t){var a,n,o,i,d,c;if(r.length)return function(){var a,o,i;for(i=[],a=0,o=r.length;a<o;a++)n=r[a],i.push(e.removeClass(n,t));return i}();if(r.classList){for(c=[],o=0,i=(d=t.split(" ")).length;o<i;o++)a=d[o],c.push(r.classList.remove(a));return c}return r.className=r.className.replace(new RegExp("(^|\\b)"+t.split(" ").join("|")+"(\\b|$)","gi")," ")},e.toggleClass=function(r,t,a){var n;return r.length?function(){var o,i,d;for(d=[],o=0,i=r.length;o<i;o++)n=r[o],d.push(e.toggleClass(n,t,a));return d}():a?e.hasClass(r,t)?void 0:e.addClass(r,t):e.removeClass(r,t)},e.append=function(r,t){var a;return r.length?function(){var n,o,i;for(i=[],n=0,o=r.length;n<o;n++)a=r[n],i.push(e.append(a,t));return i}():r.insertAdjacentHTML("beforeend",t)},e.find=function(r,e){return(r instanceof NodeList||r instanceof Array)&&(r=r[0]),r.querySelectorAll(e)},e.trigger=function(r,e,t){var a;try{a=new CustomEvent(e,{detail:t})}catch(r){(a=document.createEvent("CustomEvent")).initCustomEvent?a.initCustomEvent(e,!0,!0,t):a.initEvent(e,!0,!0,t)}return r.dispatchEvent(a)},r.exports=e}).call(this)},346:(r,e,t)=>{"use strict";t.r(e),t.d(e,{default:()=>h});var a=t(379),n=t.n(a),o=t(795),i=t.n(o),d=t(569),c=t.n(d),p=t(565),l=t.n(p),s=t(216),f=t.n(s),g=t(589),u=t.n(g),j=t(120),b={};b.styleTagTransform=u(),b.setAttributes=l(),b.insert=c().bind(null,"head"),b.domAPI=i(),b.insertStyleElement=f(),n()(j.Z,b);const h=j.Z&&j.Z.locals?j.Z.locals:void 0},379:r=>{"use strict";var e=[];function t(r){for(var t=-1,a=0;a<e.length;a++)if(e[a].identifier===r){t=a;break}return t}function a(r,a){for(var o={},i=[],d=0;d<r.length;d++){var c=r[d],p=a.base?c[0]+a.base:c[0],l=o[p]||0,s="".concat(p," ").concat(l);o[p]=l+1;var f=t(s),g={css:c[1],media:c[2],sourceMap:c[3],supports:c[4],layer:c[5]};if(-1!==f)e[f].references++,e[f].updater(g);else{var u=n(g,a);a.byIndex=d,e.splice(d,0,{identifier:s,updater:u,references:1})}i.push(s)}return i}function n(r,e){var t=e.domAPI(e);return t.update(r),function(e){if(e){if(e.css===r.css&&e.media===r.media&&e.sourceMap===r.sourceMap&&e.supports===r.supports&&e.layer===r.layer)return;t.update(r=e)}else t.remove()}}r.exports=function(r,n){var o=a(r=r||[],n=n||{});return function(r){r=r||[];for(var i=0;i<o.length;i++){var d=t(o[i]);e[d].references--}for(var c=a(r,n),p=0;p<o.length;p++){var l=t(o[p]);0===e[l].references&&(e[l].updater(),e.splice(l,1))}o=c}}},569:r=>{"use strict";var e={};r.exports=function(r,t){var a=function(r){if(void 0===e[r]){var t=document.querySelector(r);if(window.HTMLIFrameElement&&t instanceof window.HTMLIFrameElement)try{t=t.contentDocument.head}catch(r){t=null}e[r]=t}return e[r]}(r);if(!a)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");a.appendChild(t)}},216:r=>{"use strict";r.exports=function(r){var e=document.createElement("style");return r.setAttributes(e,r.attributes),r.insert(e,r.options),e}},565:(r,e,t)=>{"use strict";r.exports=function(r){var e=t.nc;e&&r.setAttribute("nonce",e)}},795:r=>{"use strict";r.exports=function(r){var e=r.insertStyleElement(r);return{update:function(t){!function(r,e,t){var a="";t.supports&&(a+="@supports (".concat(t.supports,") {")),t.media&&(a+="@media ".concat(t.media," {"));var n=void 0!==t.layer;n&&(a+="@layer".concat(t.layer.length>0?" ".concat(t.layer):""," {")),a+=t.css,n&&(a+="}"),t.media&&(a+="}"),t.supports&&(a+="}");var o=t.sourceMap;o&&"undefined"!=typeof btoa&&(a+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(o))))," */")),e.styleTagTransform(a,r,e.options)}(e,r,t)},remove:function(){!function(r){if(null===r.parentNode)return!1;r.parentNode.removeChild(r)}(e)}}}},589:r=>{"use strict";r.exports=function(r,e){if(e.styleSheet)e.styleSheet.cssText=r;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(r))}}},311:r=>{"use strict";r.exports=jQuery}},a={};function n(r){var e=a[r];if(void 0!==e)return e.exports;var o=a[r]={id:r,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.exports}n.n=r=>{var e=r&&r.__esModule?()=>r.default:()=>r;return n.d(e,{a:e}),e},n.d=(r,e)=>{for(var t in e)n.o(e,t)&&!n.o(r,t)&&Object.defineProperty(r,t,{enumerable:!0,get:e[t]})},n.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(r){if("object"==typeof window)return window}}(),n.o=(r,e)=>Object.prototype.hasOwnProperty.call(r,e),n.r=r=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(r,"__esModule",{value:!0})},n.nc=void 0,e=n(579),(r=n(311)).card={},r.card.fn={},r.fn.card=function(e){return r.card.fn.construct.apply(this,e)},r.fn.extend({card:function(t,...a){return this.each((function(){var n,o;if((o=(n=r(this)).data("card"))||(r.each(t,((r,e)=>{if(e instanceof jQuery)return t[r]=e[0]})),t.form=this,n.data("card",o=new e(t))),"string"==typeof t)return o[t].apply(o,a)}))}}),card={}})();
================================================
FILE: dist/jquery.card.js.LICENSE.txt
================================================
/*!
* node.extend
* Copyright 2011, John Resig
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* @fileoverview
* Port of jQuery.extend that actually works on node.js
*/
/**!
* is
* the definitive JavaScript type testing library
*
* @copyright 2013-2014 Enrico Marino / Jordan Harband
* @license MIT
*/
================================================
FILE: package.json
================================================
{
"name": "card",
"version": "2.5.4",
"author": "Jesse Pollak <jpollak92@gmail.com>",
"description": "Card lets you add an interactive, CSS3 credit card animation to your credit card form to help your users through the process.",
"main": "lib/card.js",
"repository": {
"type": "git",
"url": "https://github.com/jessepollak/card"
},
"contributors": [
{
"name": "Jesse Pollak",
"email": "jpollak92@gmail.com"
},
{
"name": "Melloware",
"email": "mellowaredev@gmail.com"
},
{
"name": "Daniel Juhl",
"email": "danieljuhl@gmail.com"
}
],
"scripts": {
"clean": "rimraf ./lib/ && rimraf ./dist/",
"compile": "npm run clean && npm run compile:lib && npm run compile:dist && npm run compile:styles",
"compile:lib": "coffee --compile -o ./lib/ ./src/coffee/card.coffee && node-sass ./src/scss/card.scss -o lib/ && replace '../scss/card.scss' './card.css' lib/card.js",
"compile:dist": "npm run env NODE_ENV=production && webpack",
"compile:styles": "node-sass ./src/scss/card.scss -o ./dist/ --output-style compressed",
"development": "webpack-dev-server --hot",
"preversion": "npm run compile",
"prepublish": "npm run env NODE_ENV=production && npm run compile",
"postpublish": "git push origin master && git push --tags",
"test": "karma start --single-run --browsers PhantomJS"
},
"devDependencies": {
"bower": "^1.8.12",
"coffee-loader": "^4.0.0",
"coffee-script": "~1.12.7",
"css-loader": "^6.7.2",
"event-stream": "^4.0.1",
"glob": "^8.0.3",
"jquery": "^3.6.0",
"node-sass": "^8.0.0",
"nodemon": "^2.0.7",
"replace": "^1.2.1",
"rimraf": "^4.0.4",
"run-sequence": "~2.2.1",
"sass-loader": "^13.2.0",
"style-loader": "^3.3.1",
"underscore": "^1.12.1",
"vinyl-source-stream": "^2.0.0",
"webpack": "^5.75.0",
"webpack-cli": "^5.0.0",
"webpack-dev-server": "^4.11.1"
},
"dependencies": {
"node.extend": "~2.0.2",
"payment": "^2.4.6",
"qj": "^2.0.0"
},
"engines": {
"node": ">=16.0.0"
}
}
================================================
FILE: public/index.html
================================================
<!DOCTYPE html>
<html>
<head>
<title>Card – the better way to collect credit cards</title>
<meta name="viewport" content="initial-scale=1">
<!-- CSS is included through the card.js script -->
</head>
<body>
<style>
.demo-container {
width: 100%;
max-width: 350px;
margin: 50px auto;
}
form {
margin: 30px;
}
input {
width: 200px;
margin: 10px auto;
display: block;
}
</style>
<div class="demo-container">
<div class="card-wrapper"></div>
<div class="form-container active">
<form action="">
<input placeholder="Card number" type="tel" name="number">
<input placeholder="Full name" type="text" name="name">
<input placeholder="MM/YY" type="tel" name="expiry">
<input placeholder="CVC" type="number" name="cvc">
</form>
</div>
</div>
<script src="http://localhost:8080/card.js"></script>
<script>
var c = new Card({
form: document.querySelector('form'),
container: '.card-wrapper'
});
</script>
</body>
</html>
================================================
FILE: src/coffee/card.coffee
================================================
require '../scss/card.scss'
QJ = require 'qj'
payment = require 'payment'
extend = require 'node.extend'
class Card
initializedDataAttr: "data-jp-card-initialized"
cardTemplate: '' +
'<div class="jp-card-container">' +
'<div class="jp-card">' +
'<div class="jp-card-front">' +
'<div class="jp-card-logo jp-card-elo">' +
'<div class="e">e</div>' +
'<div class="l">l</div>' +
'<div class="o">o</div>' +
'</div>' +
'<div class="jp-card-logo jp-card-visa">Visa</div>' +
'<div class="jp-card-logo jp-card-visaelectron">Visa<div class="elec">Electron</div></div>' +
'<div class="jp-card-logo jp-card-mastercard">Mastercard</div>' +
'<div class="jp-card-logo jp-card-maestro">Maestro</div>' +
'<div class="jp-card-logo jp-card-amex"></div>' +
'<div class="jp-card-logo jp-card-discover">discover</div>' +
'<div class="jp-card-logo jp-card-unionpay">UnionPay</div>' +
'<div class="jp-card-logo jp-card-dinersclub"></div>' +
'<div class="jp-card-logo jp-card-hipercard">Hipercard</div>' +
'<div class="jp-card-logo jp-card-troy">troy</div>' +
'<div class="jp-card-logo jp-card-dankort"><div class="dk"><div class="d"></div><div class="k"></div></div></div>' +
'<div class="jp-card-logo jp-card-jcb">' +
'<div class="j">J</div>' +
'<div class="c">C</div>' +
'<div class="b">B</div>' +
'</div>' +
'<div class="jp-card-lower">' +
'<div class="jp-card-shiny"></div>' +
'<div class="jp-card-cvc jp-card-display">{{cvc}}</div>' +
'<div class="jp-card-number jp-card-display">{{number}}</div>' +
'<div class="jp-card-name jp-card-display">{{name}}</div>' +
'<div class="jp-card-expiry jp-card-display" data-before="{{monthYear}}" data-after="{{validDate}}">{{expiry}}</div>' +
'</div>' +
'</div>' +
'<div class="jp-card-back">' +
'<div class="jp-card-bar"></div>' +
'<div class="jp-card-cvc jp-card-display">{{cvc}}</div>' +
'<div class="jp-card-shiny"></div>' +
'</div>' +
'</div>' +
'</div>'
template: (tpl, data) ->
tpl.replace /\{\{(.*?)\}\}/g, (match, key, str) ->
data[key]
cardTypes: [
'jp-card-amex',
'jp-card-dankort',
'jp-card-dinersclub',
'jp-card-discover',
'jp-card-unionpay',
'jp-card-jcb',
'jp-card-laser',
'jp-card-maestro',
'jp-card-mastercard',
'jp-card-troy',
'jp-card-unionpay',
'jp-card-visa',
'jp-card-visaelectron',
'jp-card-elo',
'jp-card-hipercard'
]
defaults:
formatting: true
formSelectors:
numberInput: 'input[name="number"]'
expiryInput: 'input[name="expiry"]'
cvcInput: 'input[name="cvc"]'
nameInput: 'input[name="name"]'
cardSelectors:
cardContainer: '.jp-card-container'
card: '.jp-card'
numberDisplay: '.jp-card-number'
expiryDisplay: '.jp-card-expiry'
cvcDisplay: '.jp-card-cvc'
nameDisplay: '.jp-card-name'
messages:
validDate: 'valid\nthru'
monthYear: 'month/year'
placeholders:
number: '•••• •••• •••• ••••'
cvc: '•••'
expiry: '••/••'
name: 'Full Name'
masks:
cardNumber: false
classes:
valid: 'jp-card-valid'
invalid: 'jp-card-invalid'
debug: false
constructor: (opts) ->
@options = extend(true, @defaults, opts)
unless @options.form
console.log "Please provide a form"
return
@$el = QJ(@options.form)
unless @options.container
console.log "Please provide a container"
return
@$container = QJ(@options.container)
# set a data attribute to ensure that card is only ever initialized
# once on a given container
toInitialize = if QJ.isDOMElement(@$container) then @$container else @$container[0]
return if toInitialize.getAttribute(@initializedDataAttr)
toInitialize.setAttribute(@initializedDataAttr, true)
@render()
@attachHandlers()
@handleInitialPlaceholders()
render: ->
QJ.append(@$container, @template(
@cardTemplate,
extend({}, @options.messages, @options.placeholders)
))
for name, selector of @options.cardSelectors
this["$#{name}"] = QJ.find(@$container, selector)
for name, selector of @options.formSelectors
selector = if @options[name] then @options[name] else selector
obj = QJ.find(@$el, selector)
console.error "Card can't find a #{name} in your form." if !obj.length and @options.debug
this["$#{name}"] = obj
if @options.formatting
Payment.formatCardNumber(@$numberInput)
Payment.formatCardCVC(@$cvcInput)
Payment.formatCardExpiry(@$expiryInput)
if @options.width
$cardContainer = QJ(@options.cardSelectors.cardContainer)[0]
baseWidth = parseInt($cardContainer.clientWidth || window.getComputedStyle($cardContainer).width)
$cardContainer.style.transform = "scale(#{@options.width / baseWidth})"
# safari can't handle transparent radial gradient right now
if navigator?.userAgent
ua = navigator.userAgent.toLowerCase()
if ua.indexOf('safari') != -1 and ua.indexOf('chrome') == -1
QJ.addClass @$card, 'jp-card-safari'
if (/MSIE 10\./i.test(navigator.userAgent))
QJ.addClass @$card, 'jp-card-ie-10'
# ie 11 does not support conditional compilation, use user agent instead
if (/rv:11.0/i.test(navigator.userAgent))
QJ.addClass @$card, 'jp-card-ie-11'
attachHandlers: ->
numberInputFilters = [@validToggler('cardNumber')]
numberInputFilters.push(@maskCardNumber) if @options.masks.cardNumber
bindVal @$numberInput, @$numberDisplay,
fill: false,
filters: numberInputFilters
QJ.on @$numberInput, 'payment.cardType', @handle('setCardType')
expiryFilters = [(val) ->
if val.length == 1 and val[0] == '0' then '' else val.replace /(\s+)/g, ''
]
expiryFilters.push @validToggler('cardExpiry')
bindVal @$expiryInput, @$expiryDisplay,
join: (text) ->
if text[0].length == 2 or text[1] then "/" else ""
filters: expiryFilters
bindVal @$cvcInput, @$cvcDisplay, filters: @validToggler('cardCVC')
QJ.on @$cvcInput, 'focus', @handle('flipCard')
QJ.on @$cvcInput, 'blur', @handle('unflipCard')
bindVal @$nameInput, @$nameDisplay,
fill: false
filters: @validToggler('cardHolderName')
join: ' '
handleInitialPlaceholders: ->
for name, selector of @options.formSelectors
el = this["$#{name}"]
el = el[0] if el instanceof NodeList
if QJ.val(el)
# if the input has a value, we want to trigger a refresh
QJ.trigger el, 'paste'
# set a timeout because `jquery.payment` does the reset of the val
# in a timeout
do (el) -> setTimeout -> QJ.trigger el, 'keyup'
handle: (fn) ->
(e) =>
args = Array.prototype.slice.call arguments
args.unshift e.target
@handlers[fn].apply this, args
validToggler: (validatorName) ->
if validatorName == "cardExpiry"
isValid = (val) ->
objVal = Payment.fns.cardExpiryVal val
Payment.fns.validateCardExpiry objVal.month, objVal.year
else if validatorName == "cardCVC"
isValid = (val) => Payment.fns.validateCardCVC val, @cardType
else if validatorName == "cardNumber"
isValid = (val) -> Payment.fns.validateCardNumber val
else if validatorName == "cardHolderName"
isValid = (val) -> val != ""
(val, $in, $out) =>
result = isValid val
@toggleValidClass $in, result
@toggleValidClass $out, result
val
toggleValidClass: (el, test) ->
QJ.toggleClass el, @options.classes.valid, test
QJ.toggleClass el, @options.classes.invalid, !test
maskCardNumber: (val, el, out) =>
mask = @options.masks.cardNumber
numbers = val.split(' ')
if numbers.length >= 3
numbers.forEach (item, idx) ->
numbers[idx] = numbers[idx].replace(/\d/g, mask) unless idx == numbers.length - 1
numbers.join(' ')
else
val.replace /\d/g, mask
handlers:
setCardType: ($el, e) ->
cardType = e.data
event = new CustomEvent('card-type-changed', 'detail': e.data)
document.dispatchEvent event
unless QJ.hasClass @$card, cardType
QJ.removeClass @$card, 'jp-card-unknown'
QJ.removeClass @$card, @cardTypes.join(' ')
QJ.addClass @$card, "jp-card-#{cardType}"
QJ.toggleClass @$card, 'jp-card-identified', (cardType isnt 'unknown')
@cardType = cardType
flipCard: ->
QJ.addClass @$card, 'jp-card-flipped'
unflipCard: ->
QJ.removeClass @$card, 'jp-card-flipped'
bindVal = (el, out, opts={}) ->
opts.fill = opts.fill || false
opts.filters = opts.filters || []
opts.filters = [opts.filters] unless opts.filters instanceof Array
opts.join = opts.join || ""
if !(typeof(opts.join) == "function")
joiner = opts.join
opts.join = () -> joiner
outDefaults = (o.textContent for o in out)
# Set the value on initiation
setVal(el, out, outDefaults, opts)
# Update on Events
QJ.on el, 'focus', ->
QJ.addClass out, 'jp-card-focused'
QJ.on el, 'blur', ->
QJ.removeClass out, 'jp-card-focused'
QJ.on el, 'keyup change paste', (e) ->
setVal(el, out, outDefaults, opts)
el
setVal = (el, out, outDefaults, opts) ->
val = (QJ.val(elem) for elem in el)
join = opts.join(val)
val = val.join(join)
val = "" if val == join
for filter in opts.filters
val = filter(val, el, out)
for outEl, i in out
if opts.fill
outVal = val + outDefaults[i].substring(val.length)
else
outVal = val or outDefaults[i]
outEl.textContent = outVal
getCardType: ->
ccType = Payment.fns.cardType(@$numberInput[0].value)
if ccType then ccType else 'unknown'
module.exports = Card
global.Card = Card
================================================
FILE: src/coffee/jquery.card.coffee
================================================
Card = require './card'
$ = require('jquery')
$.card = {}
$.card.fn = {}
$.fn.card = (opts) ->
$.card.fn.construct.apply(this, opts)
$.fn.extend card: (option, args...) ->
@each ->
$this = $(this)
data = $this.data('card')
if !data
$.each option, (key, value) =>
if value instanceof jQuery
option[key] = value[0]
option['form'] = this
$this.data 'card', (data = new Card(option))
if typeof option == 'string'
data[option].apply(data, args)
================================================
FILE: src/scss/_mixins.scss
================================================
// IMPORT ONCE
// We use this to prevent styles from being loaded multiple times for compenents that rely on other components.
$modules: () !default;
@mixin exports($name) {
// Import from global scope
$modules: $modules !global;
// Check if a module is already on the list
$module_index: index($modules, $name);
@if (($module_index == null) or ($module_index == false)) {
$modules: append($modules, $name) !global;
@content;
}
}
@mixin shape() {
content: " ";
display: block;
}
@mixin card-texture($radial-gradient: true) {
$b1: rgba(255, 255, 255, 0);
$b2: opacify($b1, .03);
$b3: opacify($b1, .04);
$b4: opacify($b1, .05);
@if ($radial-gradient) {
@include background-image(
repeating-linear-gradient(45deg,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-linear-gradient(135deg,
$b4 1px, $b1 2px,
$b3 3px, $b2 4px
),
repeating-linear-gradient(90deg,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-linear-gradient(210deg,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-radial-gradient(circle at 30% 30%,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-radial-gradient(circle at 70% 70%,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-radial-gradient(circle at 90% 20%,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-radial-gradient(circle at 15% 80%,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
linear-gradient(-25deg, $b1 50%, opacify($b1, .2) 70%, $b1 90%)
);
} @else {
@include background-image(
repeating-linear-gradient(45deg,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-linear-gradient(135deg,
$b4 1px, $b1 2px,
$b3 3px, $b2 4px
),
repeating-linear-gradient(90deg,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
repeating-linear-gradient(210deg,
$b1 1px, $b2 2px,
$b3 3px, $b4 4px
),
linear-gradient(-25deg, $b1 50%, opacify($b1, .2) 70%, $b1 90%)
);
}
}
================================================
FILE: src/scss/browsers/_ie.scss
================================================
.jp-card.jp-card-ie-10, .jp-card.jp-card-ie-11 {
&.jp-card-flipped {
@include transform(0deg);
.jp-card-front {
@include transform(rotateY(0deg));
}
.jp-card-back {
@include transform(rotateY(0deg));
&:after {
left: 18%;
}
.jp-card-cvc {
@include transform(rotateY(180deg));
left: 5%;
}
.jp-card-shiny {
left: 84%;
&:after {
left: -480%;
@include transform(rotateY(180deg));
}
}
}
}
}
.jp-card.jp-card-ie-10.jp-card-amex .jp-card-back, .jp-card.jp-card-ie-11.jp-card-amex .jp-card-back {
display: none;
}
================================================
FILE: src/scss/browsers/_safari.scss
================================================
.jp-card.jp-card-safari {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
@include card-texture($radial-gradient: false);
}
}
}
}
================================================
FILE: src/scss/card.scss
================================================
@import "bourbon/app/assets/stylesheets/bourbon";
@import "mixins";
// browser specific hacks
@import "browsers/safari";
@import "browsers/ie";
@import "cards/amex";
@import "cards/discover";
@import "cards/unionpay";
@import "cards/visa";
@import "cards/visaelectron";
@import "cards/mastercard";
@import "cards/maestro";
@import "cards/dankort";
@import "cards/elo";
@import "cards/jcb";
@import "cards/dinersclub";
@import "cards/hipercard";
@import "cards/troy";
.jp-card-container {
@include perspective(1000px);
width: $card-width;
max-width: 100%;
height: $card-height;
margin: auto;
z-index: 1;
position: relative;
}
.jp-card {
font-family: $card-font-family;
line-height: 1;
position: relative;
width: 100%;
height: 100%;
min-width: 315px;
border-radius: $card-border-radius;
& > *,
& > *:after,
& > *:before {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
font-family: inherit;
}
@include transform-style(preserve-3d);
@include transition(all $card-transition-time linear);
&.jp-card-flipped {
@include transform(rotateY(180deg));
}
.jp-card-back,
.jp-card-front {
@include backface-visibility(hidden);
@include transform-style(preserve-3d);
@include transition(all $card-transition-time linear);
width: 100%;
height: 100%;
position: absolute;
top: 0;
left: 0;
overflow: hidden;
border-radius: $card-border-radius;
background: #ddd;
&:before {
@include shape();
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
opacity: 0;
border-radius: 10px;
@include transition(all $card-transition-time ease);
}
&:after {
@include shape();
}
.jp-card-display {
color: $card-font-color;
font-weight: normal;
opacity: 0.5;
@include transition(opacity $card-transition-time linear);
&.jp-card-focused {
opacity: 1;
font-weight: 700;
&.valid {
}
}
}
.jp-card-cvc {
font-family: $card-monospace-font-family;
font-size: 14px;
}
.jp-card-shiny {
$color: #ccc;
$radius: 5px;
width: 50px;
height: 35px;
border-radius: $radius;
background: $color;
position: relative;
&:before {
@include shape();
$height: 60%;
width: 70%;
height: $height;
border-top-right-radius: $radius;
border-bottom-right-radius: $radius;
background: lighten($color, 5%);
position: absolute;
top: (100% - $height) / 2;
}
}
}
.jp-card-front {
.jp-card-logo {
position: absolute;
opacity: 0;
right: 5%;
top: 8%;
@include transition($card-transition-time);
}
.jp-card-lower {
$width: 80%;
width: $width;
position: absolute;
left: (100% - $width) / 2;
bottom: 30px;
@media only screen and (max-width: 480px) {
width: 90%;
left: 5%;
}
.jp-card-cvc {
visibility: hidden;
float: right;
position: relative;
bottom: 5px;
}
.jp-card-number {
font-family: $card-monospace-font-family;
font-size: 24px;
clear: both;
margin-bottom: 30px;
}
.jp-card-expiry {
font-family: $card-monospace-font-family;
$label-padding: 5px;
letter-spacing: 0;
position: relative;
float: right;
width: 25%;
&:after,
&:before {
font-family: $card-font-family;
font-weight: bold;
font-size: 7px;
white-space: pre;
display: block;
opacity: 0.5;
}
&:before {
content: attr(data-before);
margin-bottom: $label-padding - 3px;
font-size: 7px;
text-transform: uppercase;
}
&:after {
position: absolute;
content: attr(data-after);
text-align: right;
right: 100%;
margin-right: $label-padding;
margin-top: 2px;
bottom: 0;
}
}
.jp-card-name {
text-transform: uppercase;
font-family: $card-monospace-font-family;
font-size: 20px;
max-height: 45px;
position: absolute;
bottom: 0;
width: 190px;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: horizontal;
overflow: hidden;
text-overflow: ellipsis;
}
}
}
.jp-card-back {
@include transform(rotateY(180deg));
$bar-top-offset: 40%;
$signature-height: 16%;
$signature-left: 2%;
.jp-card-bar {
@include linear-gradient(#444, #333);
width: 100%;
height: 20%;
position: absolute;
top: 10%;
}
&:after {
@include shape();
@include linear-gradient(#fff, #fff);
width: 80%;
height: $signature-height;
position: absolute;
top: $bar-top-offset;
left: $signature-left;
}
.jp-card-cvc {
position: absolute;
top: $bar-top-offset;
left: 85%;
@include transition-delay($card-transition-time + 200ms);
}
.jp-card-shiny {
position: absolute;
top: $bar-top-offset + $signature-height + 10%;
left: $signature-left;
&:after {
content: "This card has been issued by Jesse Pollak and is licensed for anyone to use anywhere for free. It comes with no warranty. For support issues, please visit: github.com/jessepollak/card.";
position: absolute;
left: 120%;
top: 5%;
color: white;
font-size: 7px;
width: 230px;
opacity: 0.5;
}
}
}
&.jp-card-identified {
box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);
.jp-card-back,
.jp-card-front {
background-color: #000;
background-color: rgba(0, 0, 0, 0.5);
&:before {
@include transition(all $card-transition-time ease);
@include card-texture();
opacity: 1;
// box-shadow: inset 0 0 5px rgba(255,255,255,1);
}
.jp-card-logo {
box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.3);
}
}
&.no-radial-gradient {
.jp-card-back,
.jp-card-front {
&:before {
@include card-texture($radial-gradient: false);
}
}
}
}
}
@media (max-width: 450px) {
.card-wrapper {
max-width: 80vw;
width: 100%;
margin: 20px auto;
overflow-x: hidden;
& > .jp-card-container {
transform: scale(0.625);
transform-origin: left center;
}
}
}
================================================
FILE: src/scss/cards/_amex.scss
================================================
@import "card";
@import "../logos/amex";
$fill-color: #108168;
.jp-card.jp-card-amex {
&.jp-card-flipped{
@include transform(none);
}
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-front {
.jp-card-logo.jp-card-amex {
opacity: 1;
}
.jp-card-cvc {
visibility: visible;
}
&:after {
opacity: 1;
}
}
}
}
================================================
FILE: src/scss/cards/_card.scss
================================================
$card-width: 350px;
$card-height: 200px;
$card-border-radius: 10px;
$card-fill-color: #3399cc;
$card-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
$card-monospace-font-family: "Bitstream Vera Sans Mono", Consolas, Courier,
monospace;
$card-font-color: white;
$card-transition-time: 400ms;
================================================
FILE: src/scss/cards/_dankort.scss
================================================
@import "card";
@import "../logos/dankort";
$fill-color: #0055C7;
.jp-card.jp-card-dankort {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-dankort {
opacity: 1;
}
}
}
================================================
FILE: src/scss/cards/_dinersclub.scss
================================================
@import "card";
@import "../logos/dinersclub";
$fill-color: #999;
.jp-card.jp-card-dinersclub .jp-card-front .jp-card-logo {
box-shadow: none !important;
}
.jp-card.jp-card-dinersclub {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-dinersclub {
opacity: 1;
}
}
}
================================================
FILE: src/scss/cards/_discover.scss
================================================
@import "card";
@import "../logos/discover";
$fill-color: #86B8CF;
$highlight-color: #FF6600;
.jp-card {
.jp-card-front .jp-card-logo.jp-card-discover {
right: 12%;
top: 18%;
}
}
.jp-card.jp-card-discover {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-discover {
opacity: 1;
}
.jp-card-front {
&:after {
$size: 50px;
@include transition($card-transition-time);
@include shape();
@include linear-gradient($highlight-color, lighten($highlight-color, 20%), $highlight-color);
height: $size;
width: $size;
border-radius: $size / 2;
position: absolute;
left: 100%;
top: 15%;
margin-left: -$size / 2;
box-shadow: inset 1px 1px 3px 1px rgba(0, 0, 0, .5);
}
}
}
}
================================================
FILE: src/scss/cards/_elo.scss
================================================
@import "card";
@import "../logos/elo";
$fill-color: #6F6969;
.jp-card.jp-card-elo {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-elo {
opacity: 1;
}
}
}
================================================
FILE: src/scss/cards/_hipercard.scss
================================================
@import "card";
@import "../logos/hipercard";
$fill-color: #770304;
.jp-card.jp-card-hipercard {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-hipercard {
opacity: 1;
box-shadow: none;
}
}
}
================================================
FILE: src/scss/cards/_jcb.scss
================================================
@import "card";
@import "../logos/jcb";
$fill-color: #CB8000;
.jp-card.jp-card-jcb {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-jcb {
opacity: 1;
box-shadow: none;
}
}
}
================================================
FILE: src/scss/cards/_maestro.scss
================================================
@import "card";
@import "../logos/maestro";
$fill-color: #0B2C5F;
.jp-card.jp-card-maestro {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
.jp-card-logo.jp-card-maestro {
box-shadow: none;
}
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-maestro {
opacity: 1;
}
}
}
================================================
FILE: src/scss/cards/_mastercard.scss
================================================
@import "card";
@import "../logos/mastercard";
$fill-color: #0061A8;
.jp-card.jp-card-mastercard {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
.jp-card-logo.jp-card-mastercard {
box-shadow: none;
}
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-mastercard {
opacity: 1;
}
}
}
================================================
FILE: src/scss/cards/_troy.scss
================================================
@import "card";
@import "../logos/troy";
$fill-color: #01adba;
.jp-card.jp-card-troy {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-troy {
opacity: 1;
box-shadow: none;
}
}
}
================================================
FILE: src/scss/cards/_unionpay.scss
================================================
@import "card";
@import "../logos/unionpay";
$fill-color: #987c00;
$highlight-color: #FF6600;
.jp-card.jp-card-unionpay {
&.jp-card-identified {
.jp-card-back,
.jp-card-front {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-unionpay {
opacity: 1;
}
}
}
================================================
FILE: src/scss/cards/_visa.scss
================================================
@import "card";
@import "../logos/visa";
$fill-color: #191278;
.jp-card.jp-card-visa {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-visa {
opacity: 1;
box-shadow: none;
}
}
}
================================================
FILE: src/scss/cards/_visaelectron.scss
================================================
@import "card";
@import "../logos/visaelectron";
$fill-color: #191278;
.jp-card.jp-card-visaelectron {
&.jp-card-identified {
.jp-card-front, .jp-card-back {
&:before {
background-color: $fill-color;
}
}
.jp-card-logo.jp-card-visaelectron {
opacity: 1;
}
}
}
================================================
FILE: src/scss/logos/_amex.scss
================================================
@import "logo";
.jp-card-logo.jp-card-amex {
$box-offset: 8px;
$box-width: $logo-height - $box-offset;
$box-height: $box-width;
$font-size: 4px;
$font-padding: 2px;
text-transform: uppercase;
font-size: $font-size;
font-weight: bold;
color: white;
@include background-image(repeating-radial-gradient(circle at center, #FFF 1px, #999 2px));
border: 1px solid #EEE;
&:before, &:after {
width: $box-width;
display: block;
position: absolute;
left: ($logo-width - $box-width) / 2;
}
&:before {
$blue: #267AC3;
height: $box-height;
content: "american";
// box-shadow: 1px 1px 0 0 rgba(0, 0, 0, 0.6);
top: $box-offset / 2 - 1;
text-align: left;
padding-left: $font-padding;
padding-top: $box-height / 2 - $font-size + 1;
background: $blue;
}
&:after {
content: "express";
bottom: $box-height / 2 - $font-size + 1;
text-align: right;
padding-right: $font-padding;
}
}
================================================
FILE: src/scss/logos/_dankort.scss
================================================
@import "logo";
.jp-card-logo.jp-card-dankort {
$white: #FFFFFF;
$black: #000000;
$red: #ED1C24;
$padding: 3px;
$radius: 8px;
$inner-height: $logo-height - ($padding * 2) - 2; // height - padding - border
$letter-height: $inner-height * 0.55;
width: $logo-width;
height: $logo-height;
padding: $padding;
border-radius: $radius;
border: $black 1px solid;
background-color: $white;
.dk {
position: relative;
width: 100%;
height: 100%;
overflow: hidden;
&:before {
background-color: $red;
content: '';
position: absolute;
width: 100%;
height: 100%;
display: block;
border-radius: $radius*0.75;
}
&:after {
content: '';
position: absolute;
top: 50%;
margin-top: -($letter-height/2);
right: 0;
width: 0;
height: 0;
border-style: solid;
border-width: 7px 7px 10px 0;
border-color: transparent $red transparent transparent;
z-index: 1;
}
}
.d, .k {
position: absolute;
top: 50%;
width: 50%;
display: block;
height: $letter-height;
margin-top: -($letter-height/2);
background: white;
}
.d {
left: 0;
border-radius: 0 8px 10px 0;
&:before {
content: '';
position: absolute;
top: 50%;
left: 50%;
display: block;
background: $red;
border-radius: 2px 4px 6px 0px;
height: 5px;
width: 7px;
margin: -3px 0 0 -4px;
}
}
.k {
right: 0;
&:before, &:after {
content: '';
position: absolute;
right: 50%;
width: 0;
height: 0;
border-style: solid;
margin-right: -1px;
}
&:before {
top: 0;
border-width: 8px 5px 0 0;
border-color: $red transparent transparent transparent;
}
&:after {
bottom: 0;
border-width: 0 5px 8px 0;
border-color: transparent transparent $red transparent;
}
}
}
================================================
FILE: src/scss/logos/_dinersclub.scss
================================================
@import "logo";
.jp-card-logo.jp-card-dinersclub {
font-family: serif;
height: 40px;
width: 100px;
color: white;
font-size: 17px;
font-style: normal;
letter-spacing: 1px;
&::before, &::after {
display: block;
position: relative;
}
&::before {
content: 'Diners Club';
}
&::after {
content: 'International';
text-transform: uppercase;
font-size: 0.6em;
}
}
================================================
FILE: src/scss/logos/_discover.scss
================================================
@import "logo";
.jp-card-logo.jp-card-discover {
$orange: #FF6600;
$offset: 9px;
background: $orange;
color: #111;
text-transform: uppercase;
font-style: normal;
font-weight: bold;
font-size: 10px;
text-align: center;
overflow: hidden;
z-index: 1;
padding-top: $offset;
letter-spacing: .03em;
border: 1px solid #EEE;
&:before, &:after {
content: " ";
display: block;
position: absolute;
}
&:before {
$size: 200px;
background: white;
width: $size;
height: $size;
border-radius: $size;
bottom: -5%;
right: -80%;
z-index: -1;
}
&:after {
$size: 8px;
width: $size;
height: $size;
border-radius: $size /2;
top: $offset + 1;
left: 27px;
@include radial-gradient($orange, #fff);
content: "network";
font-size: 4px;
line-height: 24px;
text-indent: -7px;
}
}
================================================
FILE: src/scss/logos/_elo.scss
================================================
@import "logo";
.jp-card-logo.jp-card-elo {
height: 50px;
width: 50px;
border-radius: 100%;
background: black;
color: white;
text-align: center;
text-transform: lowercase;
font-size: 21px;
font-style: normal;
letter-spacing: 1px;
font-weight: bold;
padding-top: 13px;
.e, .l, .o {
display: inline-block;
position: relative;
}
.e {
@include transform(rotate(-15deg));
}
.o {
position: relative;
gitextract_km5b62gn/ ├── .github/ │ └── dependabot.yml ├── .gitignore ├── .gitmodules ├── .npmignore ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── bower.json ├── dist/ │ ├── card.css │ ├── card.js │ ├── card.js.LICENSE.txt │ ├── jquery.card.js │ └── jquery.card.js.LICENSE.txt ├── package.json ├── public/ │ └── index.html ├── src/ │ ├── coffee/ │ │ ├── card.coffee │ │ └── jquery.card.coffee │ └── scss/ │ ├── _mixins.scss │ ├── browsers/ │ │ ├── _ie.scss │ │ └── _safari.scss │ ├── card.scss │ ├── cards/ │ │ ├── _amex.scss │ │ ├── _card.scss │ │ ├── _dankort.scss │ │ ├── _dinersclub.scss │ │ ├── _discover.scss │ │ ├── _elo.scss │ │ ├── _hipercard.scss │ │ ├── _jcb.scss │ │ ├── _maestro.scss │ │ ├── _mastercard.scss │ │ ├── _troy.scss │ │ ├── _unionpay.scss │ │ ├── _visa.scss │ │ └── _visaelectron.scss │ └── logos/ │ ├── _amex.scss │ ├── _dankort.scss │ ├── _dinersclub.scss │ ├── _discover.scss │ ├── _elo.scss │ ├── _hipercard.scss │ ├── _jcb.scss │ ├── _logo.scss │ ├── _maestro.scss │ ├── _mastercard.scss │ ├── _troy.scss │ ├── _unionpay.scss │ ├── _visa.scss │ └── _visaelectron.scss └── webpack.config.js
SYMBOL INDEX (32 symbols across 2 files)
FILE: dist/card.js
class t (line 2) | class t{template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a)...
method template (line 2) | template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a){retur...
method constructor (line 2) | constructor(r){var e;this.maskCardNumber=this.maskCardNumber.bind(this...
method render (line 2) | render(){var r,e,t,a,i,d,c,p;for(t in n.append(this.$container,this.te...
method attachHandlers (line 2) | attachHandlers(){var e,t;return t=[this.validToggler("cardNumber")],th...
method handleInitialPlaceholders (line 2) | handleInitialPlaceholders(){var r,e,t,a;for(e in a=[],t=this.options.f...
method handle (line 2) | handle(r){return e=>{var t;return(t=Array.prototype.slice.call(argumen...
method validToggler (line 2) | validToggler(r){var e;return"cardExpiry"===r?e=function(r){var e;retur...
method toggleValidClass (line 2) | toggleValidClass(r,e){return n.toggleClass(r,this.options.classes.vali...
method maskCardNumber (line 2) | maskCardNumber(r,e,t){var a,n;return a=this.options.masks.cardNumber,(...
method getCardType (line 2) | getCardType(){return Payment.fns.cardType(this.$numberInput[0].value)|...
function r (line 2) | function r(){}
function t (line 2) | function t(r){for(var t=-1,a=0;a<e.length;a++)if(e[a].identifier===r){t=...
method template (line 2) | template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a){retur...
method constructor (line 2) | constructor(r){var e;this.maskCardNumber=this.maskCardNumber.bind(this...
method render (line 2) | render(){var r,e,t,a,i,d,c,p;for(t in n.append(this.$container,this.te...
method attachHandlers (line 2) | attachHandlers(){var e,t;return t=[this.validToggler("cardNumber")],th...
method handleInitialPlaceholders (line 2) | handleInitialPlaceholders(){var r,e,t,a;for(e in a=[],t=this.options.f...
method handle (line 2) | handle(r){return e=>{var t;return(t=Array.prototype.slice.call(argumen...
method validToggler (line 2) | validToggler(r){var e;return"cardExpiry"===r?e=function(r){var e;retur...
method toggleValidClass (line 2) | toggleValidClass(r,e){return n.toggleClass(r,this.options.classes.vali...
method maskCardNumber (line 2) | maskCardNumber(r,e,t){var a,n;return a=this.options.masks.cardNumber,(...
method getCardType (line 2) | getCardType(){return Payment.fns.cardType(this.$numberInput[0].value)|...
function a (line 2) | function a(r,a){for(var o={},i=[],d=0;d<r.length;d++){var c=r[d],p=a.bas...
function n (line 2) | function n(r,e){var t=e.domAPI(e);return t.update(r),function(e){if(e){i...
function t (line 2) | function t(a){var n=e[a];if(void 0!==n)return n.exports;var o=e[a]={id:a...
method template (line 2) | template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a){retur...
method constructor (line 2) | constructor(r){var e;this.maskCardNumber=this.maskCardNumber.bind(this...
method render (line 2) | render(){var r,e,t,a,i,d,c,p;for(t in n.append(this.$container,this.te...
method attachHandlers (line 2) | attachHandlers(){var e,t;return t=[this.validToggler("cardNumber")],th...
method handleInitialPlaceholders (line 2) | handleInitialPlaceholders(){var r,e,t,a;for(e in a=[],t=this.options.f...
method handle (line 2) | handle(r){return e=>{var t;return(t=Array.prototype.slice.call(argumen...
method validToggler (line 2) | validToggler(r){var e;return"cardExpiry"===r?e=function(r){var e;retur...
method toggleValidClass (line 2) | toggleValidClass(r,e){return n.toggleClass(r,this.options.classes.vali...
method maskCardNumber (line 2) | maskCardNumber(r,e,t){var a,n;return a=this.options.masks.cardNumber,(...
method getCardType (line 2) | getCardType(){return Payment.fns.cardType(this.$numberInput[0].value)|...
FILE: dist/jquery.card.js
class t (line 2) | class t{template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a)...
method template (line 2) | template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a){retur...
method constructor (line 2) | constructor(r){var e;this.maskCardNumber=this.maskCardNumber.bind(this...
method render (line 2) | render(){var r,e,t,a,i,d,c,p;for(t in n.append(this.$container,this.te...
method attachHandlers (line 2) | attachHandlers(){var e,t;return t=[this.validToggler("cardNumber")],th...
method handleInitialPlaceholders (line 2) | handleInitialPlaceholders(){var r,e,t,a;for(e in a=[],t=this.options.f...
method handle (line 2) | handle(r){return e=>{var t;return(t=Array.prototype.slice.call(argumen...
method validToggler (line 2) | validToggler(r){var e;return"cardExpiry"===r?e=function(r){var e;retur...
method toggleValidClass (line 2) | toggleValidClass(r,e){return n.toggleClass(r,this.options.classes.vali...
method maskCardNumber (line 2) | maskCardNumber(r,e,t){var a,n;return a=this.options.masks.cardNumber,(...
method getCardType (line 2) | getCardType(){return Payment.fns.cardType(this.$numberInput[0].value)|...
function r (line 2) | function r(){}
function t (line 2) | function t(r){for(var t=-1,a=0;a<e.length;a++)if(e[a].identifier===r){t=...
method template (line 2) | template(r,e){return r.replace(/\{\{(.*?)\}\}/g,(function(r,t,a){retur...
method constructor (line 2) | constructor(r){var e;this.maskCardNumber=this.maskCardNumber.bind(this...
method render (line 2) | render(){var r,e,t,a,i,d,c,p;for(t in n.append(this.$container,this.te...
method attachHandlers (line 2) | attachHandlers(){var e,t;return t=[this.validToggler("cardNumber")],th...
method handleInitialPlaceholders (line 2) | handleInitialPlaceholders(){var r,e,t,a;for(e in a=[],t=this.options.f...
method handle (line 2) | handle(r){return e=>{var t;return(t=Array.prototype.slice.call(argumen...
method validToggler (line 2) | validToggler(r){var e;return"cardExpiry"===r?e=function(r){var e;retur...
method toggleValidClass (line 2) | toggleValidClass(r,e){return n.toggleClass(r,this.options.classes.vali...
method maskCardNumber (line 2) | maskCardNumber(r,e,t){var a,n;return a=this.options.masks.cardNumber,(...
method getCardType (line 2) | getCardType(){return Payment.fns.cardType(this.$numberInput[0].value)|...
function a (line 2) | function a(r,a){for(var o={},i=[],d=0;d<r.length;d++){var c=r[d],p=a.bas...
function n (line 2) | function n(r,e){var t=e.domAPI(e);return t.update(r),function(e){if(e){i...
function n (line 2) | function n(r){var e=a[r];if(void 0!==e)return e.exports;var o=a[r]={id:r...
Condensed preview — 50 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (210K chars).
[
{
"path": ".github/dependabot.yml",
"chars": 112,
"preview": "version: 2\nupdates:\n - package-ecosystem: \"npm\"\n directory: \"/\"\n schedule:\n interval: \"daily\"\n "
},
{
"path": ".gitignore",
"chars": 54,
"preview": "bower_components\n.tmp\n.idea\ncoverage\nnode_modules\nlib\n"
},
{
"path": ".gitmodules",
"chars": 211,
"preview": "[submodule \"src/scss/bourbon\"]\n\tpath = src/scss/bourbon\n\turl = https://github.com/thoughtbot/bourbon.git\n[submodule \"src"
},
{
"path": ".npmignore",
"chars": 514,
"preview": "# Automatically ignored per:\n# https://www.npmjs.org/doc/developers.html#Keeping-files-out-of-your-package\n#\n# .*.swp\n# "
},
{
"path": "CONTRIBUTING.md",
"chars": 2674,
"preview": "# Welcome\n\nWelcome to the Card contributor guidelines. We are *so happy to have you*. No matter who you are or what your"
},
{
"path": "LICENSE",
"chars": 1056,
"preview": "Copyright (c) 2014 Jesse Pollak\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this so"
},
{
"path": "README.md",
"chars": 9365,
"preview": "\n\n# Card - check out the **[demo](https://jessepollak.github.io/card)**\n\n### A "
},
{
"path": "bower.json",
"chars": 508,
"preview": "{\n \"name\": \"card\",\n \"homepage\": \"https://github.com/jessepollak/card\",\n \"authors\": [\"Jesse Pollak <jpollak92@gmail.co"
},
{
"path": "dist/card.css",
"chars": 27073,
"preview": ".jp-card.jp-card-safari.jp-card-identified .jp-card-front:before,.jp-card.jp-card-safari.jp-card-identified .jp-card-ba"
},
{
"path": "dist/card.js",
"chars": 58204,
"preview": "/*! For license information please see card.js.LICENSE.txt */\nvar card;(()=>{var r={579:function(r,e,t){var a,n,o;t(346)"
},
{
"path": "dist/card.js.LICENSE.txt",
"chars": 356,
"preview": "/*!\n * node.extend\n * Copyright 2011, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jqu"
},
{
"path": "dist/jquery.card.js",
"chars": 58601,
"preview": "/*! For license information please see jquery.card.js.LICENSE.txt */\nvar card;(()=>{var r,e,t={579:function(r,e,t){var a"
},
{
"path": "dist/jquery.card.js.LICENSE.txt",
"chars": 356,
"preview": "/*!\n * node.extend\n * Copyright 2011, John Resig\n * Dual licensed under the MIT or GPL Version 2 licenses.\n * http://jqu"
},
{
"path": "package.json",
"chars": 2111,
"preview": "{\n \"name\": \"card\",\n \"version\": \"2.5.4\",\n \"author\": \"Jesse Pollak <jpollak92@gmail.com>\",\n \"description\": \"Card lets "
},
{
"path": "public/index.html",
"chars": 1246,
"preview": "<!DOCTYPE html>\n<html>\n\n<head>\n <title>Card – the better way to collect credit cards</title>\n <meta name=\"v"
},
{
"path": "src/coffee/card.coffee",
"chars": 10414,
"preview": "require '../scss/card.scss'\n\nQJ = require 'qj'\npayment = require 'payment'\nextend = require 'node.extend'\n\nclass Card\n "
},
{
"path": "src/coffee/jquery.card.coffee",
"chars": 505,
"preview": "Card = require './card'\n$ = require('jquery')\n\n$.card = {}\n$.card.fn = {}\n$.fn.card = (opts) ->\n $.card.fn.construct.ap"
},
{
"path": "src/scss/_mixins.scss",
"chars": 2499,
"preview": "// IMPORT ONCE\n// We use this to prevent styles from being loaded multiple times for compenents that rely on other compo"
},
{
"path": "src/scss/browsers/_ie.scss",
"chars": 792,
"preview": ".jp-card.jp-card-ie-10, .jp-card.jp-card-ie-11 {\n &.jp-card-flipped {\n @include transform(0deg);\n .jp-c"
},
{
"path": "src/scss/browsers/_safari.scss",
"chars": 210,
"preview": ".jp-card.jp-card-safari {\n &.jp-card-identified {\n .jp-card-front, .jp-card-back {\n &:before {\n "
},
{
"path": "src/scss/card.scss",
"chars": 6715,
"preview": "@import \"bourbon/app/assets/stylesheets/bourbon\";\n@import \"mixins\";\n\n// browser specific hacks\n@import \"browsers/safari\""
},
{
"path": "src/scss/cards/_amex.scss",
"chars": 587,
"preview": "@import \"card\";\n@import \"../logos/amex\";\n\n$fill-color: #108168;\n\n.jp-card.jp-card-amex {\n\n &.jp-card-flipped{\n "
},
{
"path": "src/scss/cards/_card.scss",
"chars": 306,
"preview": "$card-width: 350px;\n$card-height: 200px;\n$card-border-radius: 10px;\n$card-fill-color: #3399cc;\n$card-font-family: \"Helve"
},
{
"path": "src/scss/cards/_dankort.scss",
"chars": 338,
"preview": "@import \"card\";\n@import \"../logos/dankort\";\n\n$fill-color: #0055C7;\n\n.jp-card.jp-card-dankort {\n &.jp-card-identified "
},
{
"path": "src/scss/cards/_dinersclub.scss",
"chars": 438,
"preview": "@import \"card\";\n@import \"../logos/dinersclub\";\n\n$fill-color: #999;\n\n.jp-card.jp-card-dinersclub .jp-card-front .jp-card-"
},
{
"path": "src/scss/cards/_discover.scss",
"chars": 1087,
"preview": "@import \"card\";\n@import \"../logos/discover\";\n\n$fill-color: #86B8CF;\n$highlight-color: #FF6600;\n\n.jp-card {\n .jp-card-"
},
{
"path": "src/scss/cards/_elo.scss",
"chars": 326,
"preview": "@import \"card\";\n@import \"../logos/elo\";\n\n$fill-color: #6F6969;\n\n.jp-card.jp-card-elo {\n &.jp-card-identified {\n "
},
{
"path": "src/scss/cards/_hipercard.scss",
"chars": 373,
"preview": "@import \"card\";\n@import \"../logos/hipercard\";\n\n$fill-color: #770304;\n\n.jp-card.jp-card-hipercard {\n &.jp-card-identif"
},
{
"path": "src/scss/cards/_jcb.scss",
"chars": 355,
"preview": "@import \"card\";\n@import \"../logos/jcb\";\n\n$fill-color: #CB8000;\n\n.jp-card.jp-card-jcb {\n &.jp-card-identified {\n "
},
{
"path": "src/scss/cards/_maestro.scss",
"chars": 430,
"preview": "@import \"card\";\n@import \"../logos/maestro\";\n\n$fill-color: #0B2C5F;\n\n.jp-card.jp-card-maestro {\n &.jp-card-identified "
},
{
"path": "src/scss/cards/_mastercard.scss",
"chars": 442,
"preview": "@import \"card\";\n@import \"../logos/mastercard\";\n\n$fill-color: #0061A8;\n\n.jp-card.jp-card-mastercard {\n &.jp-card-ident"
},
{
"path": "src/scss/cards/_troy.scss",
"chars": 358,
"preview": "@import \"card\";\n@import \"../logos/troy\";\n\n$fill-color: #01adba;\n\n.jp-card.jp-card-troy {\n &.jp-card-identified {\n "
},
{
"path": "src/scss/cards/_unionpay.scss",
"chars": 325,
"preview": "@import \"card\";\n@import \"../logos/unionpay\";\n$fill-color: #987c00;\n$highlight-color: #FF6600;\n\n.jp-card.jp-card-unionpay"
},
{
"path": "src/scss/cards/_visa.scss",
"chars": 358,
"preview": "@import \"card\";\n@import \"../logos/visa\";\n\n$fill-color: #191278;\n\n.jp-card.jp-card-visa {\n &.jp-card-identified {\n "
},
{
"path": "src/scss/cards/_visaelectron.scss",
"chars": 353,
"preview": "@import \"card\";\n@import \"../logos/visaelectron\";\n\n$fill-color: #191278;\n\n.jp-card.jp-card-visaelectron {\n &.jp-card-i"
},
{
"path": "src/scss/logos/_amex.scss",
"chars": 1072,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-amex {\n $box-offset: 8px;\n $box-width: $logo-height - $box-offset;\n $box"
},
{
"path": "src/scss/logos/_dankort.scss",
"chars": 2140,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-dankort {\n $white: #FFFFFF;\n $black: #000000;\n $red: #ED1C24;\n $paddi"
},
{
"path": "src/scss/logos/_dinersclub.scss",
"chars": 459,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-dinersclub {\n font-family: serif;\n height: 40px;\n width: 100px;\n colo"
},
{
"path": "src/scss/logos/_discover.scss",
"chars": 1010,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-discover {\n $orange: #FF6600;\n $offset: 9px;\n background: $orange;\n c"
},
{
"path": "src/scss/logos/_elo.scss",
"chars": 1071,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-elo {\n height: 50px;\n width: 50px;\n border-radius: 100%;\n background:"
},
{
"path": "src/scss/logos/_hipercard.scss",
"chars": 259,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-hipercard {\n height: 20px;\n width: 100px;\n color: white;\n font-size: "
},
{
"path": "src/scss/logos/_jcb.scss",
"chars": 1204,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-jcb {\n @mixin jcb-radius($jcbradius) {\n border-radius: $jcbradius 0px $jc"
},
{
"path": "src/scss/logos/_logo.scss",
"chars": 302,
"preview": "$logo-height: 36px;\n$logo-width: 60px;\n$mastercard-family-name-height: 84px;\n\n@include exports(\"_logo.scss\") {\n .jp-c"
},
{
"path": "src/scss/logos/_maestro.scss",
"chars": 805,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-maestro {\n // display: none;\n $blue: #EB001B;\n $red: #00A2E5;\n $offse"
},
{
"path": "src/scss/logos/_mastercard.scss",
"chars": 811,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-mastercard {\n // display: none;\n $red: #EB001B;\n $yellow: #FF5F00;\n $"
},
{
"path": "src/scss/logos/_troy.scss",
"chars": 457,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-troy {\n text-transform: lowercase;\n color: #fff;\n text-align: center;\n "
},
{
"path": "src/scss/logos/_unionpay.scss",
"chars": 1028,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-unionpay {\n $red: #e21836;\n $offset: 0;\n $size: 40px;\n width: $size + 20;\n d"
},
{
"path": "src/scss/logos/_visa.scss",
"chars": 587,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-visa {\n // display: none;\n text-transform: uppercase;\n color: white;\n "
},
{
"path": "src/scss/logos/_visaelectron.scss",
"chars": 677,
"preview": "@import \"logo\";\n\n.jp-card-logo.jp-card-visaelectron {\n // display: none;\n $blue: #1A1876;\n $yellow: #E79800;\n "
},
{
"path": "webpack.config.js",
"chars": 1115,
"preview": "var webpack = require(\"webpack\");\nvar _ = require(\"underscore\");\n\nvar baseConfig = {\n mode: \"production\",\n resolve: {\n"
}
]
About this extraction
This page contains the full source code of the jessepollak/card GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 50 files (197.9 KB), approximately 65.6k tokens, and a symbol index with 32 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.