ngx-sand-credit-cards
Version:
An angular custom credit card package module.
27 lines • 3.19 kB
JavaScript
import { Directive, HostListener } from "@angular/core";
export class creditCardDirective {
onKeyDown(event) {
console.log(event);
const input = event.target;
console.log(input);
let trimmed = input.value.replace(/\s+/g, '');
if (trimmed.length > 16) {
trimmed = trimmed.substr(0, 16);
}
let numbers = [];
for (let i = 0; i < trimmed.length; i += 4) {
numbers.push(trimmed.substr(i, 4));
}
input.value = numbers.join(' ');
// debugger
}
}
creditCardDirective.decorators = [
{ type: Directive, args: [{
selector: '[credit-card]'
},] }
];
creditCardDirective.propDecorators = {
onKeyDown: [{ type: HostListener, args: ['input', ['$event'],] }]
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BhY2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IkQ6L0V4cGVyaW1lbnRzL05neFNhbmRDcmVkaXRDYXJkcy9wcm9qZWN0cy9uZ3gtc2FuZC1jcmVkaXQtY2FyZHMvc3JjLyIsInNvdXJjZXMiOlsibGliL2RpcmVjdGl2ZXMvc3BhY2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBS3hELE1BQU0sT0FBTyxtQkFBbUI7SUFFNUIsU0FBUyxDQUFDLEtBQW9CO1FBQzFCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUE7UUFDbEIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQTBCLENBQUE7UUFDOUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNsQixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFDN0MsSUFBSSxPQUFPLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFBRTtZQUNyQixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUE7U0FDbEM7UUFDRCxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN4QyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUE7U0FDckM7UUFDRCxLQUFLLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDL0IsV0FBVztJQUNmLENBQUM7OztZQW5CSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLGVBQWU7YUFDNUI7Ozt3QkFFSSxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogJ1tjcmVkaXQtY2FyZF0nXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBjcmVkaXRDYXJkRGlyZWN0aXZlIHtcclxuICAgIEBIb3N0TGlzdGVuZXIoJ2lucHV0JywgWyckZXZlbnQnXSlcclxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGV2ZW50KVxyXG4gICAgICAgIGNvbnN0IGlucHV0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnRcclxuICAgICAgICBjb25zb2xlLmxvZyhpbnB1dClcclxuICAgICAgICBsZXQgdHJpbW1lZCA9IGlucHV0LnZhbHVlLnJlcGxhY2UoL1xccysvZywgJycpXHJcbiAgICAgICAgaWYgKHRyaW1tZWQubGVuZ3RoID4gMTYpIHtcclxuICAgICAgICAgICAgdHJpbW1lZCA9IHRyaW1tZWQuc3Vic3RyKDAsIDE2KVxyXG4gICAgICAgIH1cclxuICAgICAgICBsZXQgbnVtYmVycyA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdHJpbW1lZC5sZW5ndGg7IGkgKz0gNCkge1xyXG4gICAgICAgICAgICBudW1iZXJzLnB1c2godHJpbW1lZC5zdWJzdHIoaSwgNCkpXHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlucHV0LnZhbHVlID0gbnVtYmVycy5qb2luKCcgJylcclxuICAgICAgICAvLyBkZWJ1Z2dlclxyXG4gICAgfVxyXG59Il19