stripe-angular
Version:
Angular to Stripe module containing useful providers, components, and directives
1 lines • 25.8 kB
Source Map (JSON)
{"version":3,"file":"stripe-angular.mjs","sources":["../../src/StripeTypes.ts","../../src/StripeScriptTag.ts","../../src/components/StripeComponent.ts","../../src/components/StripeSource.component.ts","../../src/components/StripeCard.component.ts","../../src/components/StripeBank.component.ts","../../src/index.ts","../../src/stripe-angular.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nexport const STRIPE_PUBLISHABLE_KEY = new InjectionToken<string>('Stripe Publishable Key')\nexport const STRIPE_OPTIONS = new InjectionToken<stripe.StripeOptions>('Stripe Options')\n\nexport interface Stripe{\n (string:string,options?:stripe.StripeOptions):stripe.Stripe\n}\n\nexport interface BankAccountTokenOptions extends stripe.BankAccountTokenOptions {\n metadata?:Record<string, string>;\n}","import { DOCUMENT } from '@angular/common'\nimport { Injectable, Inject } from \"@angular/core\"\n\nimport {\n Stripe, STRIPE_PUBLISHABLE_KEY, STRIPE_OPTIONS\n //, StripeCard, StripeToken\n} from \"./StripeTypes\"\n\n@Injectable({providedIn: 'root'}) export class StripeScriptTag {\n src:string = \"https://js.stripe.com/v3/\"\n Stripe!:Stripe//set at runtime\n StripeInstance!:stripe.Stripe\n load:Promise<any>\n window: any\n\n constructor(\n @Inject(DOCUMENT) private document: any,\n @Inject(STRIPE_PUBLISHABLE_KEY) key?: string,\n @Inject(STRIPE_OPTIONS) options?: stripe.StripeOptions,\n ){\n this.window = this.document.defaultView;\n this.load = this.injectIntoHead()\n if (key) this.setPublishableKey(key, options)\n }\n\n promiseStripe():Promise<Stripe>{\n return this.load\n }\n\n promiseInstance():Promise<stripe.Stripe>{\n return this.promiseStripe()\n .then(stripe=>{\n if( !this.StripeInstance ){\n const err = new Error(\"Stripe PublishableKey NOT SET. Use method StripeScriptTag.setPublishableKey()\")\n err[\"code\"] = \"STRIPEKEYNOTSET\"\n throw err\n //return Promise.reject( err )\n }\n\n return this.StripeInstance\n })\n }\n\n setPublishableKey(\n key:string,\n options?:stripe.StripeOptions\n ):Promise<stripe.Stripe>{\n return this.load.then( ()=>\n this.StripeInstance = this.Stripe(key, options)\n )\n }\n\n injectIntoHead():Promise<Stripe>{\n if( this.window && this.window[\"Stripe\"] ){\n return Promise.resolve( this.Stripe = this.window[\"Stripe\"] as any )\n }\n\n return new Promise((res,rej)=>{\n const head = this.getTargetTagDropElement()\n const script = this.document.createElement(\"script\")\n script.setAttribute(\"src\", this.src)\n script.setAttribute(\"type\", \"text/javascript\")\n\n script.addEventListener(\"load\",()=>{\n this.Stripe = this.grabStripe()\n res( this.Stripe )\n })\n\n head.appendChild(script)\n })\n }\n\n grabStripe(): Stripe {\n return window[\"Stripe\"] as any;\n }\n\n getTargetTagDropElement(){\n let elm = this.document.getElementsByTagName(\"head\")\n\n if(elm.length)return elm[0]\n\n return this.document.getElementsByTagName(\"body\")[0]\n }\n}\n","import {\n Input, Output, EventEmitter, Component\n} from \"@angular/core\"\nimport { StripeScriptTag } from \"../StripeScriptTag\"\n\n@Component({\n selector: \"stripe-component\", template: ``\n})\nexport class StripeComponent{\n @Output(\"catch\") catcher:EventEmitter<stripe.Error> = new EventEmitter()\n\n @Input() invalid?:stripe.Error\n @Output() invalidChange:EventEmitter<stripe.Error> = new EventEmitter()\n\n stripe!:stripe.Stripe\n\n constructor(\n public StripeScriptTag:StripeScriptTag\n ){}\n\n ngOnInit(){\n this.init()\n }\n\n init():Promise<stripe.Stripe>{\n return this.StripeScriptTag.promiseInstance()\n .then( i=>this.stripe=i )\n }\n}","import {\n Input, Output, EventEmitter, Component\n} from \"@angular/core\"\nimport { StripeScriptTag } from \"../StripeScriptTag\"\nimport { StripeComponent } from \"./StripeComponent\"\n\n@Component({\n selector: \"stripe-source\",\n template: `\n <ng-container *ngIf=\"!StripeScriptTag.StripeInstance\">\n <div style=\"color:red;\">Stripe PublishableKey NOT SET. Use method StripeScriptTag.setPublishableKey()</div>\n </ng-container>\n `,\n exportAs:\"StripeSource\"\n}) export class StripeSource extends StripeComponent{\n @Input() source?: stripe.Source\n @Output() sourceChange:EventEmitter<stripe.Source> = new EventEmitter()\n\n @Input() paymentMethod?: stripe.paymentMethod.PaymentMethod\n @Output() paymentMethodChange:EventEmitter<stripe.paymentMethod.PaymentMethod> = new EventEmitter()\n\n elements: any // For card, its the UI element\n\n constructor(\n public StripeScriptTag:StripeScriptTag\n ){\n super(StripeScriptTag)\n }\n\n createSource(\n extraData:{ owner?: stripe.OwnerInfo, metadata?: any}\n ):Promise<stripe.Source | void>{\n delete this.invalid;\n this.invalidChange.emit(this.invalid)\n\n return this.stripe.createSource(\n this.elements, extraData\n )\n .then((result:any)=>this.processSourceResult(result))\n }\n\n processSourceResult(\n result: stripe.SourceResponse\n ): stripe.Source | void {\n if(result.error){\n const rError = result.error\n if( (rError as any).type === \"validation_error\" ){\n this.invalidChange.emit( this.invalid = rError )\n }else{\n this.catcher.emit(rError);\n throw rError;\n }\n }\n\n const source = result.source;\n\n if (source) {\n this.sourceChange.emit(this.source=source);\n return source;\n }\n }\n\n createPaymentMethod(\n extraData:{ owner?: stripe.OwnerInfo, metadata?: any}\n ):Promise<stripe.paymentMethod.PaymentMethod | void>{\n delete this.invalid;\n this.invalidChange.emit(this.invalid)\n\n return this.stripe.createPaymentMethod(\n 'card', this.elements, extraData\n )\n .then((result:any)=>this.processPaymentMethodResult(result))\n }\n\n processPaymentMethodResult(\n result: stripe.PaymentMethodResponse\n ): stripe.paymentMethod.PaymentMethod | void {\n if(result.error){\n const rError = result.error\n if( (rError as any).type === \"validation_error\" ){\n this.invalidChange.emit( this.invalid = rError )\n }else{\n this.catcher.emit(rError);\n throw rError;\n }\n }\n\n const paymentMethod = result.paymentMethod;\n\n if (paymentMethod) {\n this.paymentMethodChange.emit(this.paymentMethod=paymentMethod);\n return paymentMethod;\n }\n }\n}\n","import {\n ElementRef, Input, Output, EventEmitter, Component } from \"@angular/core\"\nimport { StripeScriptTag } from \"../StripeScriptTag\"\nimport { StripeSource } from \"./StripeSource.component\"\n\n@Component({\n selector: \"stripe-card\",\n template: `\n <ng-container *ngIf=\"!StripeScriptTag.StripeInstance\">\n <div style=\"color:red;\">Stripe PublishableKey NOT SET. Use method StripeScriptTag.setPublishableKey()</div>\n </ng-container>\n `,\n exportAs:\"StripeCard\"\n}) export class StripeCard extends StripeSource {\n @Input() createOptions!:stripe.elements.ElementsCreateOptions\n @Input() options!:stripe.elements.ElementsOptions\n\n @Input() token!: stripe.Token\n @Output() tokenChange:EventEmitter<stripe.Token> = new EventEmitter()\n\n @Output() cardMounted:EventEmitter<any> = new EventEmitter()\n\n @Input() complete: boolean = false\n @Output() completeChange:EventEmitter<boolean> = new EventEmitter()\n\n @Output() changed:EventEmitter<ICardChangeEvent> = new EventEmitter()\n\n drawn = false\n\n constructor(\n public ElementRef:ElementRef,\n public StripeScriptTag:StripeScriptTag\n ){\n super(StripeScriptTag)\n }\n\n ngOnInit(){\n super.init().then(()=>this.redraw())\n }\n\n ngOnChanges( changes:any ){\n if (this.drawn && (changes.options || changes.createOptions)) {\n this.redraw();\n }\n }\n\n redraw() {\n if (this.drawn) {\n this.elements.unmount();\n this.elements.destroy();\n }\n this.elements = this.stripe.elements(this.createOptions).create('card', this.options)\n this.elements.mount(this.ElementRef.nativeElement)\n\n this.cardMounted.emit(this.elements);\n this.elements.on('change', (result: any)=>{\n this.changed.emit(result)\n if (result.complete || (this.complete && !result.complete)) {\n this.completeChange.emit(this.complete = result.complete);\n }\n });\n\n this.elements.addEventListener('change', (result:any)=>{\n if( result.error ){\n this.invalidChange.emit( this.invalid=result.error )\n }\n })\n\n this.drawn = true;\n }\n\n createToken(\n extraData?:any\n ):Promise<stripe.Token>{\n delete this.invalid\n this.invalidChange.emit(this.invalid)\n\n return this.stripe.createToken(this.elements, extraData)\n .then((result:any)=>{\n if(result.error){\n if( result.error.type==\"validation_error\" ){\n this.invalidChange.emit( this.invalid=result.error )\n }else{\n this.catcher.emit(result.error)\n throw result.error\n }\n }else{\n this.tokenChange.emit(this.token=result.token)\n return result.token\n }\n })\n }\n}\n\ninterface ICardChangeEvent {\n \"elementType\": string\n error?: {\n \"code\": string\n \"type\": string\n \"message\": string\n },\n \"value\": {\n \"postalCode\": string\n },\n \"empty\": boolean,\n \"complete\": boolean,\n \"brand\": string\n}\n","import {\n Input, Output, EventEmitter, Component\n} from \"@angular/core\"\nimport { StripeComponent } from \"./StripeComponent\"\nimport { StripeScriptTag } from \"../StripeScriptTag\"\n\n@Component({\n selector: \"stripe-bank\",\n template: `\n <ng-container *ngIf=\"!StripeScriptTag.StripeInstance\">\n <div style=\"color:red;\">Stripe PublishableKey NOT SET. Use method StripeScriptTag.setPublishableKey()</div>\n </ng-container>\n `,\n exportAs:\"StripeBank\"\n}) export class StripeBank extends StripeComponent{\n @Input() options!: stripe.elements.ElementOptions // very similar type to card options\n\n @Input() token!: stripe.Token\n @Output() tokenChange:EventEmitter<stripe.Token> = new EventEmitter()\n\n constructor(\n public StripeScriptTag:StripeScriptTag\n ){\n super(StripeScriptTag)\n }\n\n createToken( data: stripe.BankAccountTokenOptions):Promise<stripe.Token>{\n delete this.invalid\n this.invalidChange.emit(this.invalid)\n\n return this.stripe.createToken('bank_account', data)\n .then((result: any) => { // TokenResponse\n if(result.error){\n if( result.error.type==\"validation_error\" ){\n this.invalidChange.emit( this.invalid=result.error )\n }else{\n this.catcher.emit(result.error)\n throw result.error\n }\n }else{\n this.tokenChange.emit(this.token=result.token)\n return result.token\n }\n });\n }\n\n /* createSource */\n}\n","export * from \"./StripeTypes\"\n\nimport { NgModule, ModuleWithProviders } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { STRIPE_OPTIONS, STRIPE_PUBLISHABLE_KEY } from './StripeTypes'\nimport { StripeComponent } from \"./components/StripeComponent\"\nexport { StripeComponent } from \"./components/StripeComponent\"\n\nimport { StripeScriptTag } from \"./StripeScriptTag\"\nexport { StripeScriptTag } from \"./StripeScriptTag\"\n\nimport { StripeSource } from \"./components/StripeSource.component\"\nexport { StripeSource } from \"./components/StripeSource.component\"\n\nimport { StripeCard } from \"./components/StripeCard.component\"\nexport { StripeCard } from \"./components/StripeCard.component\"\n\nimport { StripeBank } from \"./components/StripeBank.component\"\nexport { StripeBank } from \"./components/StripeBank.component\"\n\nconst declarations = [\n StripeComponent, // ignore do not use (has to be here for extends purposes)\n StripeSource,\n StripeCard,\n StripeBank\n]\n\n@NgModule({\n imports:[\n CommonModule\n ],\n declarations,\n // providers: [ StripeScriptTag ],\n exports:[ ...declarations ]\n}) export class StripeModule {\n static forRoot(publishableKey?: string, options?: stripe.StripeOptions): ModuleWithProviders<StripeModule> {\n return {\n ngModule: StripeModule,\n providers: [\n StripeScriptTag,\n {\n provide: STRIPE_PUBLISHABLE_KEY,\n useValue: publishableKey\n },\n {\n provide: STRIPE_OPTIONS,\n useValue: options\n }\n ],\n }\n }\n}\n\n/**\n * @deprecated Please import `StripeModule` directly\n */\nexport const Module = StripeModule\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.StripeScriptTag"],"mappings":"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"}