@chargebee/chargebee-js-angular-wrapper
Version:
Angular wrapper for Chargebee.js Components
1 lines • 28.8 kB
Source Map (JSON)
{"version":3,"file":"chargebee-chargebee-js-angular-wrapper.mjs","sources":["../../../projects/chargebee-js-angular-wrapper/src/utils/index.ts","../../../projects/chargebee-js-angular-wrapper/src/lib/directives/number-field.directive.ts","../../../projects/chargebee-js-angular-wrapper/src/lib/directives/expiry-field.directive.ts","../../../projects/chargebee-js-angular-wrapper/src/lib/directives/cvv-field.directive.ts","../../../projects/chargebee-js-angular-wrapper/src/lib/directives/card-field.directive.ts","../../../projects/chargebee-js-angular-wrapper/src/lib/directives/provider.directive.ts","../../../projects/chargebee-js-angular-wrapper/src/public-api.ts","../../../projects/chargebee-js-angular-wrapper/src/chargebee-chargebee-js-angular-wrapper.ts"],"sourcesContent":["import { SimpleChanges, SimpleChange } from '@angular/core';\n\n// Equality comparison for objects\nexport function isEqual(left: any, right: any): boolean {\n const OBJECT_STRING = '[object Object]';\n\n if (typeof left !== 'object' || typeof right !== 'object') {\n return left === right;\n }\n\n if (left === null || right === null) {\n return left === right;\n }\n\n const leftArray = Array.isArray(left);\n const rightArray = Array.isArray(right);\n\n if (leftArray !== rightArray) {\n return false;\n }\n\n const leftPlainObject =\n Object.prototype.toString.call(left) === OBJECT_STRING;\n const rightPlainObject =\n Object.prototype.toString.call(right) === OBJECT_STRING;\n\n if (leftPlainObject !== rightPlainObject) {\n return false;\n }\n\n if (!leftPlainObject && !leftArray) {\n return false;\n }\n\n const leftKeys = Object.keys(left);\n const rightKeys = Object.keys(right);\n\n if (leftKeys.length !== rightKeys.length) {\n return false;\n }\n\n const keySet = {};\n for (const key of leftKeys) {\n keySet[key] = true;\n }\n for (const key of rightKeys) {\n keySet[key] = true;\n }\n const allKeys = Object.keys(keySet);\n if (allKeys.length !== leftKeys.length) {\n return false;\n }\n\n const l = left;\n const r = right;\n const pred = (key) => {\n return isEqual(l[key], r[key]);\n };\n\n return allKeys.every(pred);\n}\n\nexport function getPropChanges(changes: SimpleChanges, props: string[]): {\n hasChanged: boolean;\n currentOptions: object;\n prevOptions: object;\n} {\n const changedProps = Object.keys(changes).filter(key => props.indexOf(key) >= 0);\n const prevOptions = {};\n const currentOptions = {};\n\n changedProps.map(prop => {\n const change: SimpleChange = changes[prop];\n if (prop === 'styles') {\n prop = 'style';\n }\n prevOptions[prop] = change.previousValue;\n currentOptions[prop] = change.currentValue;\n });\n\n return {\n hasChanged: !isEqual(prevOptions, currentOptions),\n currentOptions,\n prevOptions,\n };\n}\n\nexport function validateCbInstance(cbInstance) {\n if (cbInstance != null) {\n const site = cbInstance.site;\n const key = cbInstance.publishableKey;\n \n if (!(site != null && typeof site == \"string\" && site.length > 0))\n return false;\n \n if (!(key != null && typeof key == \"string\" && key.length > 0))\n return false;\n \n return true;\n } else\n return false;\n }","import {Input, Output, EventEmitter, Directive, ElementRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { getPropChanges } from '../../utils';\n\n@Directive({\n selector: '[cbNumberField]',\n standalone: true,\n})\nexport class NumberFieldDirective implements OnChanges {\n @Input() styles?: object;\n @Input() placeholder?: string;\n\n @Output() ready: EventEmitter<any> = new EventEmitter();\n @Output() focus: EventEmitter<any> = new EventEmitter();\n @Output() blur: EventEmitter<any> = new EventEmitter();\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n id = '';\n field = null;\n type = 'number';\n\n constructor(el: ElementRef) {\n if (el.nativeElement) {\n this.id = el.nativeElement.id;\n }\n }\n\n onFocus = (status: any) => {\n this.focus.emit(status);\n }\n\n onBlur = (status: any) => {\n this.blur.emit(status);\n }\n\n onReady = (el: any) => {\n this.ready.emit(el);\n }\n\n onChange = (status: any) => {\n this.change.emit(status);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.field) {\n const props = ['placeholder', 'styles'];\n const { hasChanged, currentOptions } = getPropChanges(changes, props);\n\n if (hasChanged) {\n this.field.update(currentOptions);\n }\n }\n }\n\n}\n","import { Input, Output, EventEmitter, Directive, ElementRef, OnChanges, SimpleChanges } from '@angular/core';\nimport { getPropChanges } from '../../utils';\n\n@Directive({\n selector: '[cbExpiryField]',\n standalone: true,\n})\nexport class ExpiryFieldDirective implements OnChanges {\n @Input() cbComponent;\n @Input() styles?: object;\n @Input() placeholder?: string;\n\n @Output() ready: EventEmitter<any> = new EventEmitter();\n @Output() focus: EventEmitter<any> = new EventEmitter();\n @Output() blur: EventEmitter<any> = new EventEmitter();\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n id = '';\n field = null;\n type = 'expiry';\n\n constructor(el: ElementRef) {\n if (el.nativeElement) {\n this.id = el.nativeElement.id;\n }\n }\n\n onFocus = (status: any) => {\n this.focus.emit(status);\n }\n\n onBlur = (status: any) => {\n this.blur.emit(status);\n }\n\n onReady = (el: any) => {\n this.ready.emit(el);\n }\n\n onChange = (status: any) => {\n this.change.emit(status);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.field) {\n const props = ['placeholder', 'styles'];\n const { hasChanged, currentOptions } = getPropChanges(changes, props);\n\n if (hasChanged) {\n this.field.update(currentOptions);\n }\n }\n }\n\n}\n\n","import { Input, Directive, ElementRef, Output, EventEmitter, OnChanges, SimpleChanges } from '@angular/core';\nimport { getPropChanges } from '../../utils';\n\n@Directive({\n selector: '[cbCvvField]',\n standalone: true,\n})\nexport class CvvFieldDirective implements OnChanges {\n cbComponent = null;\n @Input() styles?: object;\n @Input() placeholder?: string;\n\n @Output() ready: EventEmitter<any> = new EventEmitter();\n @Output() focus: EventEmitter<any> = new EventEmitter();\n @Output() blur: EventEmitter<any> = new EventEmitter();\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n id = '';\n field = null;\n type = 'cvv';\n\n constructor(el: ElementRef) {\n if (el.nativeElement) {\n this.id = el.nativeElement.id;\n }\n }\n\n onFocus = (status: any) => {\n this.focus.emit(status);\n }\n\n onBlur = (status: any) => {\n this.blur.emit(status);\n }\n\n onReady = (el: any) => {\n this.ready.emit(el);\n }\n\n onChange = (status: any) => {\n this.change.emit(status);\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.field) {\n const props = ['placeholder', 'styles'];\n const { hasChanged, currentOptions } = getPropChanges(changes, props);\n\n if (hasChanged) {\n this.field.update(currentOptions);\n }\n }\n }\n\n}\n","import {\n Input,\n Directive,\n Output,\n EventEmitter,\n ContentChild,\n ElementRef,\n OnInit,\n OnChanges,\n SimpleChanges,\n} from \"@angular/core\";\nimport { NumberFieldDirective } from \"./number-field.directive\";\nimport { ExpiryFieldDirective } from \"./expiry-field.directive\";\nimport { CvvFieldDirective } from \"./cvv-field.directive\";\nimport { getPropChanges } from \"../../utils\";\nimport { PaymentIntent, AdditionalData, Callbacks } from \"../types\";\n\ndeclare var Chargebee: any;\n\n@Directive({\n selector: \"[cbCardField]\",\n standalone: true,\n})\nexport class CardFieldDirective implements OnInit, OnChanges {\n id = \"\";\n cbInstance = null;\n cbComponent = null;\n\n @Input() icon?: boolean;\n @Input() classes?: object;\n @Input() fonts?: object;\n @Input() styles?: object;\n @Input() locale?: string;\n @Input() showTestCards?: boolean;\n @Input() currency?: string;\n @Input() placeholder?: {\n number?: string;\n expiry?: string;\n cvv?: string;\n };\n\n @ContentChild(NumberFieldDirective, { static: true }) numberComponent;\n @ContentChild(ExpiryFieldDirective, { static: true }) expiryComponent;\n @ContentChild(CvvFieldDirective, { static: true }) cvvComponent;\n\n // Below events only for combined-field\n @Output() ready: EventEmitter<any> = new EventEmitter();\n @Output() focus: EventEmitter<any> = new EventEmitter();\n @Output() blur: EventEmitter<any> = new EventEmitter();\n @Output() change: EventEmitter<any> = new EventEmitter();\n\n load: Promise<boolean>;\n initialization: Promise<any>;\n\n constructor(el: ElementRef) {\n if (el.nativeElement) {\n this.id = el.nativeElement.id;\n }\n }\n\n onReady = (cardComponent: any, field: any) => {\n let data: any;\n if (field) {\n // Emit allows only one argument (Spec deviation)\n data = { cardComponent, field };\n } else {\n data = cardComponent;\n }\n this.ready.emit(data);\n };\n\n // Below events only for Combined field\n onFocus = (status: any) => {\n this.focus.emit(status);\n };\n onBlur = (status: any) => {\n this.blur.emit(status);\n };\n onChange = (status: any) => {\n this.change.emit(status);\n };\n\n ngOnInit() {\n if (\n typeof window !== \"undefined\" &&\n typeof window[\"Chargebee\"] !== \"undefined\"\n ) {\n const options = {\n icon: typeof this.icon === \"boolean\" ? this.icon : true,\n fonts: this.fonts || [],\n style: this.styles || {},\n locale: this.locale || \"en\",\n showTestCards: this.showTestCards ?? false,\n classes: this.classes || {},\n currency: this.currency || \"USD\",\n placeholder: this.placeholder || {},\n };\n\n this.cbInstance = window[\"Chargebee\"].getInstance();\n\n this.cbInstance.load(\"components\").then(() => {\n this.cbComponent = this.cbInstance.createComponent(\"card\", options);\n\n // Attaching listeners if any (only applicable for combined field)\n this.cbComponent.on(\"ready\", this.onReady);\n this.cbComponent.on(\"focus\", this.onFocus);\n this.cbComponent.on(\"blur\", this.onBlur);\n this.cbComponent.on(\"change\", this.onChange);\n\n // Initialize inidividual fields (if present)\n this.initializeField(this.cbComponent, this.numberComponent);\n this.initializeField(this.cbComponent, this.expiryComponent);\n this.initializeField(this.cbComponent, this.cvvComponent);\n\n this.cbComponent.mount(`#${this.id}`);\n });\n }\n }\n\n initializeField(cbComponent, fieldElement) {\n if (cbComponent && fieldElement) {\n const fieldInstance = cbComponent\n .createField(fieldElement.type, {\n style: fieldElement.styles || {},\n placeholder: fieldElement.placeholder || \"\",\n })\n .at(`#${fieldElement.id}`);\n\n fieldElement.field = fieldInstance;\n\n // attach listeners\n fieldInstance.on(\"ready\", fieldElement.onReady);\n fieldInstance.on(\"focus\", fieldElement.onFocus);\n fieldInstance.on(\"blur\", fieldElement.onBlur);\n fieldInstance.on(\"change\", fieldElement.onChange);\n return fieldInstance;\n }\n return null;\n }\n\n public tokenize(additionalData: any) {\n return this.cbComponent.tokenize(additionalData);\n }\n\n public authorizeWith3ds(\n paymentIntent: PaymentIntent,\n additionalData: AdditionalData,\n callbacks: Callbacks\n ) {\n return this.cbComponent.authorizeWith3ds(\n paymentIntent,\n additionalData,\n callbacks\n );\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.cbComponent) {\n const props = [\n \"icon\",\n \"classes\",\n \"fonts\",\n \"locale\",\n \"showTestCards\",\n \"styles\",\n \"placeholder\",\n ];\n const { currentOptions, hasChanged } = getPropChanges(changes, props);\n\n if (hasChanged) {\n this.cbComponent.update(currentOptions);\n }\n }\n }\n}\n","import { Input, Component, Output, EventEmitter, Directive, ElementRef, OnChanges, SimpleChanges, OnInit, ContentChildren, Renderer2, ViewChildren, QueryList, ContentChild, TemplateRef, ViewChild } from '@angular/core';\nimport { validateCbInstance } from '../../utils';\n\n@Component({\n selector: '[cbProvider]',\n template: `\n <ng-container *ngIf=\"validated\">\n <ng-content>\n </ng-content>\n </ng-container>\n `\n })\nexport class Provider implements OnChanges {\n @Input() cbInstance?: object;\n validated: boolean = false;\n\n constructor() {} \n\n ngOnChanges(changes: SimpleChanges) {\n if (validateCbInstance(this.cbInstance))\n this.validated = true;\n else {\n this.validated = false;\n }\n }\n}","/*\n * Public API Surface of chargebee-js-angular-wrapper\n */\n\nexport * from './lib/directives/card-field.directive';\nexport * from './lib/directives/number-field.directive';\nexport * from './lib/directives/expiry-field.directive';\nexport * from './lib/directives/cvv-field.directive';\nexport * from './lib/directives/provider.directive';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}