├── projects ├── ngx-interactive-paycard-demo │ ├── src │ │ ├── assets │ │ │ ├── .gitkeep │ │ │ ├── chip.png │ │ │ ├── logo.png │ │ │ ├── SplitShire1.jpg │ │ │ ├── SplitShire3.jpg │ │ │ └── chip_backup.png │ │ ├── environments │ │ │ ├── environment.prod.ts │ │ │ └── environment.ts │ │ ├── favicon.ico │ │ ├── app │ │ │ ├── app.component.scss │ │ │ ├── app.module.ts │ │ │ ├── app.component.html │ │ │ └── app.component.ts │ │ ├── styles.scss │ │ ├── index.html │ │ ├── main.ts │ │ ├── test.ts │ │ └── polyfills.ts │ ├── e2e │ │ ├── tsconfig.json │ │ ├── src │ │ │ ├── app.po.ts │ │ │ └── app.e2e-spec.ts │ │ └── protractor.conf.js │ ├── tslint.json │ ├── tsconfig.spec.json │ ├── tsconfig.app.json │ ├── browserslist │ └── karma.conf.js └── ngx-interactive-paycard-lib │ ├── src │ ├── assets │ │ └── style.scss │ ├── lib │ │ ├── shared │ │ │ ├── index.ts │ │ │ ├── focused-element.ts │ │ │ ├── card-label-model.ts │ │ │ ├── card-model.ts │ │ │ ├── form-label-model.ts │ │ │ ├── default-component-labels.ts │ │ │ ├── if-every-changes.directive.ts │ │ │ ├── if-undefined-changes.directive.ts │ │ │ ├── if-every-changes.directive.spec.ts │ │ │ └── if-undefined.changes.directive.spec.ts │ │ ├── interactive-paycard.module.ts │ │ ├── interactive-paycard.component.html │ │ ├── card │ │ │ ├── card.component.spec.ts │ │ │ ├── card.component.html │ │ │ ├── card.component.ts │ │ │ └── card.component.scss │ │ ├── interactive-paycard.component.scss │ │ ├── interactive-paycard.component.ts │ │ └── interactive-paycard.component.spec.ts │ ├── public-api.ts │ └── test.ts │ ├── tslint.json │ ├── ng-package.json │ ├── package.json │ ├── tsconfig.lib.prod.json │ ├── tsconfig.spec.json │ ├── tsconfig.lib.json │ ├── karma.conf.js │ └── README.md ├── paycard-demo.gif ├── .editorconfig ├── .travis.yml ├── tsconfig.base.json ├── .vscode └── launch.json ├── tsconfig.json ├── CONTRIBUTING.md ├── .gitignore ├── LICENSE ├── tslint.json ├── package.json ├── README.md └── angular.json /projects/ngx-interactive-paycard-demo/src/assets/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/src/assets/style.scss: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json" 3 | } 4 | -------------------------------------------------------------------------------- /paycard-demo.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milantenk/ngx-interactive-paycard/HEAD/paycard-demo.gif -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/environments/environment.prod.ts: -------------------------------------------------------------------------------- 1 | export const environment = { 2 | production: true 3 | }; 4 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/src/lib/shared/index.ts: -------------------------------------------------------------------------------- 1 | export * from './card-label-model'; 2 | export * from './form-label-model'; 3 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milantenk/ngx-interactive-paycard/HEAD/projects/ngx-interactive-paycard-demo/src/favicon.ico -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/assets/chip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milantenk/ngx-interactive-paycard/HEAD/projects/ngx-interactive-paycard-demo/src/assets/chip.png -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milantenk/ngx-interactive-paycard/HEAD/projects/ngx-interactive-paycard-demo/src/assets/logo.png -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/src/lib/shared/focused-element.ts: -------------------------------------------------------------------------------- 1 | export enum FocusedElement { 2 | CardNumber, 3 | CardName, 4 | ExpirationDate, 5 | CVV 6 | } 7 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/assets/SplitShire1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milantenk/ngx-interactive-paycard/HEAD/projects/ngx-interactive-paycard-demo/src/assets/SplitShire1.jpg -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/assets/SplitShire3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milantenk/ngx-interactive-paycard/HEAD/projects/ngx-interactive-paycard-demo/src/assets/SplitShire3.jpg -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/assets/chip_backup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/milantenk/ngx-interactive-paycard/HEAD/projects/ngx-interactive-paycard-demo/src/assets/chip_backup.png -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/app/app.component.scss: -------------------------------------------------------------------------------- 1 | .wrapper { 2 | min-height: 80vh; 3 | display: flex; 4 | padding: 50px 15px; 5 | flex-wrap: wrap; 6 | flex-direction: column; 7 | } 8 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/src/lib/shared/card-label-model.ts: -------------------------------------------------------------------------------- 1 | export interface CardLabel { 2 | expires: string; 3 | cardHolder: string; 4 | fullName: string; 5 | mm: string; 6 | yy: string; 7 | } 8 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/src/lib/shared/card-model.ts: -------------------------------------------------------------------------------- 1 | export class CardModel { 2 | cardNumber: string; 3 | cardName: string; 4 | expirationMonth: string; 5 | expirationYear: string; 6 | cvv: string; 7 | } 8 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/ng-package.json: -------------------------------------------------------------------------------- 1 | { 2 | "$schema": "../../node_modules/ng-packagr/ng-package.schema.json", 3 | "dest": "../../dist/ngx-interactive-paycard-lib", 4 | "lib": { 5 | "entryFile": "src/public-api.ts" 6 | } 7 | } -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "ngx-interactive-paycard", 3 | "version": "2.0.1", 4 | "license": "MIT", 5 | "peerDependencies": { 6 | "@angular/common": "^10.0.6", 7 | "@angular/core": "^10.0.6" 8 | } 9 | } -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/tsconfig.lib.prod.json: -------------------------------------------------------------------------------- 1 | /* To learn more about this file see: https://angular.io/config/tsconfig. */ 2 | { 3 | "extends": "./tsconfig.lib.json", 4 | "angularCompilerOptions": { 5 | "enableIvy": false 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/src/public-api.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * Public API Surface of ngx-interactive-paycard-lib 3 | */ 4 | 5 | export * from './lib/interactive-paycard.component'; 6 | export * from './lib/interactive-paycard.module'; 7 | export * from './lib/shared'; 8 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-lib/src/lib/shared/form-label-model.ts: -------------------------------------------------------------------------------- 1 | export interface FormLabel { 2 | cardNumber: string; 3 | cardHolderName: string; 4 | expirationDate: string; 5 | expirationMonth: string; 6 | expirationYear: string; 7 | cvv: string; 8 | submitButton: string; 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # Editor configuration, see https://editorconfig.org 2 | root = true 3 | 4 | [*] 5 | charset = utf-8 6 | indent_style = space 7 | indent_size = 2 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | 11 | [*.md] 12 | max_line_length = off 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/e2e/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../../tsconfig.json", 3 | "compilerOptions": { 4 | "outDir": "../../../out-tsc/e2e", 5 | "module": "commonjs", 6 | "target": "es5", 7 | "types": [ 8 | "jasmine", 9 | "jasminewd2", 10 | "node" 11 | ] 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/styles.scss: -------------------------------------------------------------------------------- 1 | /* You can add global styles to this file, and also import other style files */ 2 | body { 3 | background: #ddeefc; 4 | font-family: "Source Sans Pro", sans-serif; 5 | font-size: 16px; 6 | } 7 | * { 8 | box-sizing: border-box; 9 | &:focus { 10 | outline: none; 11 | } 12 | } -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "../../tslint.json", 3 | "rules": { 4 | "directive-selector": [ 5 | true, 6 | "attribute", 7 | "app", 8 | "camelCase" 9 | ], 10 | "component-selector": [ 11 | true, 12 | "element", 13 | "app", 14 | "kebab-case" 15 | ] 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /projects/ngx-interactive-paycard-demo/src/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 |
7 |
8 |