/ngx-card

Angular 2+ wrapper for https://github.com/jessepollak/card

Primary LanguageJavaScriptMIT LicenseMIT

ngx-card npm version npm License: MIT

Build Status Codacy Badge

Angular 2+ wrapper for card.js

card

https://ihym.github.io/ngx-card/

Installation

Install through npm:

npm install --save ngx-card

If you use SystemJS to load your files, you should adjust your configuration to point our UMD bundle:

map: {
  ...
  'ngx-card/ngx-card': 'node_modules/ngx-card/bundles/ngx-card.umd.js'
}

Dependencies

This library depends on https://github.com/jessepollak/card (tested with 2.3.0). We don't ship with the library, but you have to take care of including it in your page. There are various ways to achieve this, for example by adding this at the end of your <body>:

<script src="https://unpkg.com/card@2.3.0/dist/card.js"></script>

API

[card]

Input

  • container: any: A selector or DOM element for the form where users will be entering their information

  • card-width: number: default 350px

  • messages: any = {validDate: 'valid\ndate', monthYear: 'mm/yyyy'}: Strings for translation

  • placeholders: any = {number: '•••• •••• •••• ••••', name: 'Full Name', expiry: '••/••', cvc: '•••'}: Placeholders for rendered fields

  • masks: any;

  • formatting: boolean = true;

  • debug: boolean = false: If true, will log helpful messages for setting up Card

[card-number]

[card-name]

[card-expiry]

[card-cvc]

Usage

Once installed you need to import our main module into yours. You should end up with code similar to this:

import {MyComponent} from '...';
import {CardModule} from 'ngx-card/ngx-card';

@NgModule({
  imports: [..., CardModule],
  declarations: [MyComponent, ...],
})
export class MyModule {}

Modify slightly your form by adding the correct directives in your form elements.

You can have multiple form elements that render to a single field (i.e. you have a first and last name input).

To use ngx-card with this functionality, just rearrange your form elements in the correct order and add the proper directives. For example,

<div class="card-container"></div>
<form card
  container=".card-container"
  card-width="500"
  [messages]="messages"
  [placeholders]="placeholders"
  [masks]="masks"
  formatting="false"
  debug="true">

  <input type="text" name="number" card-number/>
  <input type="text" name="first-name" card-name/>
  <input type="text" name="last-name" card-name/>
  <input type="text" name="expiry" card-expiry/>
  <input type="text" name="cvc" card-cvc/>
</form>

Contribute

Build

npm run build

If you want to watch your source files for changes and build every time use:

npm start

Note: Generated output is placed into the node_modules/ngx-card folder.

Demo

The best way to see your changes in action, is to use our demo page locally. Run:

npm run demo

which will create a development server accessible through http:localhost:1111. In conjunction with npm start in another command tab you have a fully working environment!

All demo resources can be found in the /demo folder.


MIT © Vasilis Diakomanolis