@miden-npm/angular 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -95,7 +95,7 @@ declare class CheckoutIframeComponent implements AfterViewInit {
|
|
|
95
95
|
style: IIframeStyle;
|
|
96
96
|
environment: 'sandbox' | 'prod';
|
|
97
97
|
paymentObject: IPaymentObject;
|
|
98
|
-
container
|
|
98
|
+
container?: ElementRef<HTMLDivElement>;
|
|
99
99
|
get blockStyle(): {
|
|
100
100
|
width?: string;
|
|
101
101
|
height?: string;
|
|
@@ -2,6 +2,8 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component, EventEmitter, Output, Input, ViewChild } from '@angular/core';
|
|
3
3
|
import * as i1 from '@miden-npm/angular';
|
|
4
4
|
import { ButtonComponent, InputComponent, SelectComponent, LabelInfoComponent, CopyComponent, ImageComponent, CurrencyAmountComponent, IconArrowSwapComponent, formatAmount, RadioGroupComponent, SuccessComponent, CardComponent, checkObjectTruthy, IconLoaderComponent, InputErrorComponent } from '@miden-npm/angular';
|
|
5
|
+
import * as i2 from '@angular/common';
|
|
6
|
+
import { CommonModule } from '@angular/common';
|
|
5
7
|
import { tap, finalize } from 'rxjs';
|
|
6
8
|
|
|
7
9
|
class PayByCardComponent {
|
|
@@ -206,6 +208,9 @@ class CheckoutIframeComponent {
|
|
|
206
208
|
};
|
|
207
209
|
}
|
|
208
210
|
launchIframe(url) {
|
|
211
|
+
const host = this.container?.nativeElement;
|
|
212
|
+
if (!host)
|
|
213
|
+
return; // guard: container not in DOM yet
|
|
209
214
|
this.iframe = this.renderer.createElement('iframe');
|
|
210
215
|
this.renderer.setAttribute(this.iframe, 'src', url);
|
|
211
216
|
this.renderer.setStyle(this.iframe, 'width', this.style.width);
|
|
@@ -213,7 +218,7 @@ class CheckoutIframeComponent {
|
|
|
213
218
|
this.renderer.setStyle(this.iframe, 'border', this.style.border);
|
|
214
219
|
this.renderer.setStyle(this.iframe, 'borderRadius', this.style.borderRadius);
|
|
215
220
|
this.renderer.setStyle(this.iframe, 'overflow', this.style.overflow);
|
|
216
|
-
this.renderer.appendChild(
|
|
221
|
+
this.renderer.appendChild(host, this.iframe);
|
|
217
222
|
}
|
|
218
223
|
async generatePaymentLinkHandler() {
|
|
219
224
|
if (this.url) {
|
|
@@ -251,11 +256,11 @@ class CheckoutIframeComponent {
|
|
|
251
256
|
await this.generatePaymentLinkHandler();
|
|
252
257
|
}
|
|
253
258
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: CheckoutIframeComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i1.CheckoutService }], target: i0.ɵɵFactoryTarget.Component });
|
|
254
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: CheckoutIframeComponent, isStandalone: true, selector: "bzp-checkout-iframe", inputs: { secretKey: "secretKey", url: "url", style: "style", environment: "environment", paymentObject: "paymentObject" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "
|
|
259
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.2.1", type: CheckoutIframeComponent, isStandalone: true, selector: "bzp-checkout-iframe", inputs: { secretKey: "secretKey", url: "url", style: "style", environment: "environment", paymentObject: "paymentObject" }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div class=\"relative\" [ngStyle]=\"blockStyle\">\n <div #container class=\"w-full h-full\"></div>\n\n @if (loading) {\n <div class=\"absolute inset-0 grid place-items-center bg-white/60\">\n <icon-loader></icon-loader>\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: IconLoaderComponent, selector: "icon-loader", inputs: ["color", "size"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
255
260
|
}
|
|
256
261
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImport: i0, type: CheckoutIframeComponent, decorators: [{
|
|
257
262
|
type: Component,
|
|
258
|
-
args: [{ selector: 'bzp-checkout-iframe', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconLoaderComponent], template: "
|
|
263
|
+
args: [{ selector: 'bzp-checkout-iframe', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, imports: [IconLoaderComponent, CommonModule], template: "<div class=\"relative\" [ngStyle]=\"blockStyle\">\n <div #container class=\"w-full h-full\"></div>\n\n @if (loading) {\n <div class=\"absolute inset-0 grid place-items-center bg-white/60\">\n <icon-loader></icon-loader>\n </div>\n }\n</div>\n" }]
|
|
259
264
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i1.CheckoutService }], propDecorators: { secretKey: [{
|
|
260
265
|
type: Input
|
|
261
266
|
}], url: [{
|
|
@@ -268,7 +273,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.2.1", ngImpor
|
|
|
268
273
|
type: Input
|
|
269
274
|
}], container: [{
|
|
270
275
|
type: ViewChild,
|
|
271
|
-
args: ['container']
|
|
276
|
+
args: ['container', { static: false }]
|
|
272
277
|
}] } });
|
|
273
278
|
|
|
274
279
|
class CheckoutButtonComponent {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miden-npm-angular-buzapay-checkout.mjs","sources":["../../buzapay-checkout/src/lib/components/pay-by-card/pay-by-card.component.ts","../../buzapay-checkout/src/lib/components/pay-by-card/pay-by-card.component.html","../../buzapay-checkout/src/lib/components/pay-by-transfer/pay-by-transfer.component.ts","../../buzapay-checkout/src/lib/components/pay-by-transfer/pay-by-transfer.component.html","../../buzapay-checkout/src/lib/components/pay-by-stable-coin/pay-by-stable-coin.component.ts","../../buzapay-checkout/src/lib/components/pay-by-stable-coin/pay-by-stable-coin.component.html","../../buzapay-checkout/src/lib/checkout-card/checkout-card.component.ts","../../buzapay-checkout/src/lib/checkout-card/checkout-card.component.html","../../buzapay-checkout/src/lib/checkout-iframe/checkout-iframe.component.ts","../../buzapay-checkout/src/lib/checkout-iframe/checkout-iframe.component.html","../../buzapay-checkout/src/lib/checkout-button/checkout-button.component.ts","../../buzapay-checkout/src/lib/checkout-button/checkout-button.component.html","../../buzapay-checkout/miden-npm-angular-buzapay-checkout.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ButtonComponent, InputComponent, SelectComponent } from '@miden-npm/angular';\n\n@Component({\n selector: 'pay-by-card',\n standalone: true,\n templateUrl: './pay-by-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonComponent, InputComponent, SelectComponent],\n})\nexport class PayByCardComponent {\n formIndex: number = 0;\n setFormIndex(index: number) {\n this.formIndex = index;\n }\n}\n","<div class=\"flex flex-col gap-6\">\n <!-- Billing Details -->\n @if (formIndex === 0) {\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\">\n <base-input label=\"First Name\" [required]=\"true\"></base-input>\n <base-input label=\"Last Name\" [required]=\"true\"></base-input>\n <base-input label=\"Email\"></base-input>\n <base-input label=\"Phone Number\"></base-input>\n <base-select\n label=\"Select Country\"\n [required]=\"true\"\n [options]=\"[\n { label: 'United States', value: 'US' },\n { label: 'Canada', value: 'CA' },\n { label: 'United Kingdom', value: 'UK' },\n ]\"\n ></base-select>\n <base-select\n label=\"Select State\"\n [required]=\"true\"\n [options]=\"[\n { label: 'California', value: 'CA' },\n { label: 'Texas', value: 'TX' },\n { label: 'New York', value: 'NY' },\n ]\"\n ></base-select>\n <base-input label=\"City\" [required]=\"true\"></base-input>\n <base-input label=\"Postal Code\" [required]=\"true\"></base-input>\n <div class=\"col-span-2\">\n <base-input label=\"Street Address\" [required]=\"true\"></base-input>\n </div>\n </div>\n }\n\n <!-- Card Details -->\n @if (formIndex === 1) {\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input label=\"Card Name\" [required]=\"true\"></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input label=\"Card Number\" [required]=\"true\"></base-input>\n </div>\n <base-input label=\"Expiry Date\" [required]=\"true\"></base-input>\n <base-input label=\"CVV\" [required]=\"true\"></base-input>\n </div>\n }\n\n <base-button\n [label]=\"formIndex === 0 ? 'Proceed' : 'Pay'\"\n type=\"primary\"\n customClass=\"w-full\"\n (onClick)=\"formIndex === 0 ? setFormIndex(1) : null\"\n ></base-button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { LabelInfoComponent, CopyComponent, ButtonComponent } from '@miden-npm/angular';\n\n@Component({\n selector: 'pay-by-transfer',\n standalone: true,\n templateUrl: './pay-by-transfer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelInfoComponent, CopyComponent, ButtonComponent],\n})\nexport class PayByTransferComponent implements OnInit, OnDestroy {\n countDownTime = '';\n private remainingSeconds = 30 * 60;\n private intervalId: ReturnType<typeof setInterval> | null = null;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n private updateDisplay(): void {\n const minutes = Math.floor(this.remainingSeconds / 60);\n const seconds = this.remainingSeconds % 60;\n this.countDownTime = `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\n this.cdr.markForCheck(); // 👈 notify OnPush to re-render\n }\n\n private startTimer(): void {\n this.updateDisplay();\n this.intervalId = setInterval(() => {\n this.remainingSeconds--;\n\n if (this.remainingSeconds < 0) {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n this.countDownTime = '00:00';\n this.cdr.markForCheck();\n return;\n }\n\n this.updateDisplay();\n }, 1000);\n }\n\n ngOnInit(): void {\n this.startTimer();\n }\n\n ngOnDestroy(): void {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n }\n}\n","<div class=\"flex flex-col gap-10\">\n <p class=\"text-sub-copy text-sm font-semibold text-center\">Amount to Pay NGN 200,500.00</p>\n\n <div class=\"bg-[#EFF7FF] p-4 rounded-lg flex flex-col gap-6\">\n <base-label-info label=\"Bank Name\" value=\"Teerus MFB\"></base-label-info>\n <div class=\"flex items-center justify-between\">\n <base-label-info label=\"Account Number\" value=\"0001928940\"></base-label-info>\n <base-copy color=\"#9DBFDE\"></base-copy>\n </div>\n <div class=\"flex items-center justify-between\">\n <base-label-info label=\"Amount\" value=\"NGN 200,500.00\"></base-label-info>\n <base-copy color=\"#9DBFDE\"></base-copy>\n </div>\n </div>\n\n <p class=\"w-2/3 mx-auto text-center text-body-2xs font-medium text-sub-copy\">\n This account is for this transaction only and expires in\n <span class=\"text-orange-500\">{{ countDownTime }}</span>\n </p>\n\n <div class=\"flex flex-col gap-4\">\n <base-button label=\"I have paid the money\" type=\"primary\" customClass=\"w-full\"></base-button>\n <p class=\"text-heading-text text-body-2xs font-medium text-center py-2 cursor-pointer\">Cancel Payment</p>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\nimport {\n ButtonComponent,\n CopyComponent,\n CurrencyAmountComponent,\n IconArrowSwapComponent,\n ImageComponent,\n SelectComponent,\n} from '@miden-npm/angular';\n\n@Component({\n selector: 'pay-by-stable-coin',\n standalone: true,\n templateUrl: './pay-by-stable-coin.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SelectComponent,\n ButtonComponent,\n ImageComponent,\n CurrencyAmountComponent,\n CopyComponent,\n IconArrowSwapComponent,\n ],\n})\nexport class PayByStableCoinComponent {\n @Output() proceedToPay = new EventEmitter<void>();\n\n formIndex: number = 0;\n setFormIndex(index: number): void {\n this.formIndex = index;\n }\n\n payHandler(): void {\n this.setFormIndex(1);\n this.proceedToPay.emit();\n }\n}\n","<div class=\"flex flex-col gap-6\">\n @if (formIndex === 0) {\n <div class=\"grid grid-cols-1 gap-6\">\n <base-select\n label=\"Select Crypto\"\n [required]=\"true\"\n [options]=\"[\n { label: 'USDT', value: 'USDT' },\n { label: 'USDC', value: 'USDC' },\n { label: 'BUSD', value: 'BUSD' },\n ]\"\n ></base-select>\n <base-select\n label=\"Select Network\"\n [required]=\"true\"\n [options]=\"[\n { label: 'Ethereum', value: 'ETH' },\n { label: 'Binance Smart Chain', value: 'BSC' },\n { label: 'Polygon', value: 'MATIC' },\n ]\"\n ></base-select>\n </div>\n\n <base-button\n label=\"Pay\"\n type=\"primary\"\n customClass=\"w-full\"\n (onClick)=\"payHandler()\"\n ></base-button>\n }\n\n @if (formIndex === 1) {\n <div class=\"flex flex-col gap-6\">\n <div class=\"mx-auto\">\n <base-image\n src=\"../../../assets/images/stable-coin-qr-code.png\"\n alt=\"QR Code\"\n [width]=\"122\"\n [height]=\"122\"\n class=\"mb-1\"\n ></base-image>\n <p class=\"mb-0 text-body-4xs text-light-copy font-normal text-center\">USDC</p>\n </div>\n\n <div class=\"flex flex-col gap-6 border-c border-grey-100 p-4 rounded-2xl bg-light-white-50\">\n <div class=\"border-b border-grey-border pb-4 flex flex-col gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">Network</p>\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col gap-1\">\n <p class=\"mb-0 text-body-2xs font-medium text-sub-copy\">BNB Smart Chain (BEP20)</p>\n <div class=\"flex items-center gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">*Est. arrival = 3 mins</p>\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">|</p>\n <base-currency-amount\n currency=\"USDC\"\n [amount]=\"10\"\n textClass=\"mb-0 text-body-3xs text-light-copy font-normal\"\n iconColorClass=\"#557591\"\n iconWidth=\"12\"\n iconHeight=\"12\"\n ></base-currency-amount>\n </div>\n </div>\n <icon-arrow-swap></icon-arrow-swap>\n </div>\n </div>\n\n <div class=\"pb-4 flex flex-col gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">Deposit Address ></p>\n <div class=\"flex justify-between\">\n <p class=\"mb-0 text-body-2xs font-medium text-sub-copy w-2/3 break-words\">\n 0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6\n </p>\n <base-copy copyText=\"0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6\"></base-copy>\n </div>\n </div>\n\n <!-- <div class=\"pb-4 flex flex-col gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">Memo ></p>\n <div class=\"flex justify-between\">\n <p\n class=\"mb-0 text-body-2xs font-medium text-sub-copy w-2/3 break-words\"\n >\n 0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6\n </p>\n <app-copy\n [isCopyIcon]=\"true\"\n [copyText]=\"'0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6'\"\n ></app-copy>\n </div>\n </div> -->\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <div class=\"flex items-center justify-between border-b border-grey-border py-3\">\n <p class=\"mb-0 text-body-2xs font-medium text-primary-black\">Network fee</p>\n <base-currency-amount\n currency=\"USDC\"\n [amount]=\"12\"\n textClass=\"mb-0 text-body-2xs font-extrabold text-primary-black\"\n iconColorClass=\"#231F20\"\n ></base-currency-amount>\n </div>\n\n <div class=\"flex items-center justify-between py-4\">\n <p class=\"mb-0 text-body-lg font-semibold text-primary-black\">Pay</p>\n <base-currency-amount\n currency=\"USDC\"\n [amount]=\"15\"\n textClass=\"mb-0 text-body-lg font-extrabold text-primary-black\"\n iconColorClass=\"#231F20\"\n iconWidth=\"20\"\n iconHeight=\"20\"\n ></base-currency-amount>\n </div>\n </div>\n\n <div class=\"flex flex-col gap-6\">\n <base-button label=\"Confirm Payment\" type=\"primary\" customClass=\"w-full\"></base-button>\n </div>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n ISelectOption,\n RadioGroupComponent,\n ImageComponent,\n SuccessComponent,\n CardComponent,\n IPaymentObject,\n formatAmount,\n} from '@miden-npm/angular';\nimport { PayByCardComponent } from '../components/pay-by-card/pay-by-card.component';\nimport { PayByTransferComponent } from '../components/pay-by-transfer/pay-by-transfer.component';\nimport { PayByStableCoinComponent } from '../components/pay-by-stable-coin/pay-by-stable-coin.component';\n\nexport interface CheckoutIframeStyle {\n [cssProp: string]: string | number;\n}\n\nexport interface CheckoutCardOptions {\n imageUrl?: string;\n numberPlaceholder?: string;\n expiryPlaceholder?: string;\n cvcPlaceholder?: string;\n styles?: {\n base?: CheckoutIframeStyle;\n invalid?: CheckoutIframeStyle;\n focus?: CheckoutIframeStyle;\n };\n}\n\nexport interface TokenizeResult {\n token: string;\n last4?: string;\n brand?: string;\n}\n\n@Component({\n selector: 'bzp-checkout-card',\n standalone: true,\n templateUrl: './checkout-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RadioGroupComponent,\n ImageComponent,\n PayByCardComponent,\n PayByTransferComponent,\n PayByStableCoinComponent,\n SuccessComponent,\n CardComponent,\n ],\n})\nexport class CheckoutCardComponent {\n @Input() options: CheckoutCardOptions | null = null;\n @Input() secretKey: string = '';\n @Input() environment: 'sandbox' | 'prod' = 'sandbox';\n @Input() paymentObject: IPaymentObject = {\n amount: 0,\n currency: '',\n email: '',\n phoneNumber: '',\n narration: '',\n redirectUrl: '',\n };\n @Output() ready = new EventEmitter<void>();\n @Output() validityChange = new EventEmitter<{ valid: boolean; field?: string }>();\n @Output() tokenize = new EventEmitter<TokenizeResult>();\n\n checkoutState: 'STABLE_COIN_PAYMENT' | 'PAYMENT' | 'SUCCESS' = 'PAYMENT';\n\n countryOptions: ISelectOption[] = [\n {\n label: 'Nigeria',\n value: 'Nigeria',\n },\n {\n label: 'Ghana',\n value: 'Ghana',\n },\n ];\n\n paymentTypeOptions: ISelectOption[] = [\n { label: 'Card', value: 'CARD' },\n { label: 'Bank Transfer', value: 'BANK_TRANSFER' },\n { label: 'Stable Coin', value: 'STABLE_COIN' },\n ];\n paymentType: string = this.paymentTypeOptions[0].value;\n\n get filteredPaymentTypeOptions(): ISelectOption[] {\n if (this.paymentObject.currency === 'USD') {\n return this.paymentTypeOptions.filter((option) => option.value !== 'BANK_TRANSFER');\n }\n return this.paymentTypeOptions.filter((option) => option.value !== 'STABLE_COIN');\n }\n\n get formatAmountHandler(): string {\n return formatAmount(this.paymentObject.amount, this.paymentObject.currency);\n }\n\n paymentTypeHandler(event: string): void {\n this.paymentType = event;\n }\n\n payStableCoinHandler(): void {\n this.checkoutState = 'STABLE_COIN_PAYMENT';\n }\n}\n","<base-card [showBackButton]=\"checkoutState === 'STABLE_COIN_PAYMENT'\">\n <div class=\"grid grid-cols-3\">\n @if (checkoutState === 'PAYMENT') {\n <div class=\"bg-[#EFF7FF] px-6 py-8 flex flex-col gap-5 col-span-1 rounded-l-xl\">\n <p class=\"text-heading-text text-body-xs font-semibold\">Pay with</p>\n <base-radio-group\n [options]=\"filteredPaymentTypeOptions\"\n (selectedChange)=\"paymentTypeHandler($event)\"\n ></base-radio-group>\n </div>\n }\n\n <div class=\"col-span-2\">\n @if (checkoutState === 'PAYMENT' || checkoutState === 'STABLE_COIN_PAYMENT') {\n @if (checkoutState === 'PAYMENT') {\n <div class=\"flex items-center justify-between px-12 py-8\">\n @if (options?.imageUrl) {\n <base-image\n [src]=\"options?.imageUrl ?? ''\"\n alt=\"Merchant Logo\"\n [width]=\"52\"\n [height]=\"52\"\n class=\"rounded-lg\"\n ></base-image>\n } @else {\n <div\n class=\"bg-heading-text rounded flex flex-col justify-center\"\n style=\"width: 52px; height: 52px\"\n >\n <p class=\"text-white text-center text-body-2xs font-medium\">Logo</p>\n </div>\n }\n\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-body-2xs font-regular text-sub-copy text-right\">\n Raymahni Merchant LLC\n </p>\n <p class=\"text-body-2xs font-regular text-sub-copy text-right\">\n Pay:\n <span class=\"text-orange-500 font-extrabold\">{{ formatAmountHandler }}</span>\n </p>\n </div>\n </div>\n }\n\n <div class=\"overflow-y-scroll px-10 pb-10 pt-2\">\n @if (paymentType === 'CARD') {\n <pay-by-card></pay-by-card>\n } @else if (paymentType === 'BANK_TRANSFER') {\n <pay-by-transfer></pay-by-transfer>\n } @else {\n <pay-by-stable-coin (proceedToPay)=\"payStableCoinHandler()\"></pay-by-stable-coin>\n }\n </div>\n } @else if (checkoutState === 'SUCCESS') {\n <base-success></base-success>\n }\n </div>\n </div>\n</base-card>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n checkObjectTruthy,\n CheckoutService,\n IApiResponse,\n IPaymentObject,\n IconLoaderComponent,\n} from '@miden-npm/angular';\nimport { finalize, tap } from 'rxjs';\n\ninterface IIframeStyle {\n width?: string;\n height?: string;\n border?: string;\n borderRadius?: string;\n overflow?: string;\n}\n\n@Component({\n selector: 'bzp-checkout-iframe',\n standalone: true,\n templateUrl: './checkout-iframe.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconLoaderComponent],\n})\nexport class CheckoutIframeComponent implements AfterViewInit {\n constructor(\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n private checkout: CheckoutService,\n ) {}\n\n errorMessage: string = '';\n loading: boolean = false;\n launchUrl: string = '';\n iframe: any;\n\n @Input() secretKey: string = '';\n @Input() url: string = '';\n @Input() style: IIframeStyle = {\n width: '100%',\n height: '100vh',\n border: '0',\n borderRadius: '6px',\n overflow: 'hidden',\n };\n @Input() environment: 'sandbox' | 'prod' = 'sandbox';\n @Input() paymentObject: IPaymentObject = {\n amount: 0,\n currency: '',\n email: '',\n phoneNumber: '',\n narration: '',\n redirectUrl: '',\n };\n @ViewChild('container') container!: ElementRef;\n\n get blockStyle() {\n return {\n ...(this.style || {}),\n };\n }\n\n launchIframe(url: string): void {\n this.iframe = this.renderer.createElement('iframe');\n this.renderer.setAttribute(this.iframe, 'src', url);\n this.renderer.setStyle(this.iframe, 'width', this.style.width);\n this.renderer.setStyle(this.iframe, 'height', this.style.height);\n this.renderer.setStyle(this.iframe, 'border', this.style.border);\n this.renderer.setStyle(this.iframe, 'borderRadius', this.style.borderRadius);\n this.renderer.setStyle(this.iframe, 'overflow', this.style.overflow);\n this.renderer.appendChild(this.container.nativeElement, this.iframe);\n }\n\n async generatePaymentLinkHandler(): Promise<void | string> {\n if (this.url) {\n this.launchIframe(this.url);\n return;\n }\n\n if (!this.secretKey) {\n return (this.errorMessage = 'Secret key is required.');\n }\n\n if (!checkObjectTruthy<IPaymentObject>(this.paymentObject)) {\n return (this.errorMessage = 'Kindly ensure you are passing all the required data.');\n }\n\n this.loading = true;\n this.cdr.markForCheck();\n this.checkout\n .createPaymentLink(this.paymentObject, this.environment, this.secretKey)\n .pipe(\n tap((res: IApiResponse<any>) => {\n if (res?.isSuccessful) {\n this.launchUrl = res.launchUrl ?? '';\n this.errorMessage = 'Payment link created successfully';\n if (this.launchUrl) {\n this.launchIframe(this.launchUrl);\n }\n } else {\n this.errorMessage = 'Failed to create payment link';\n }\n }),\n finalize(() => {\n this.loading = false;\n this.cdr.markForCheck();\n }),\n )\n .subscribe();\n }\n\n async ngAfterViewInit(): Promise<void> {\n await this.generatePaymentLinkHandler();\n }\n}\n","@if (loading) {\n <div class=\"w-full h-48 flex flex-col justify-center items-center\">\n <icon-loader></icon-loader>\n </div>\n} @else {\n <div #container :style=\"blockStyle\"></div>\n}\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport {\n ButtonComponent,\n checkObjectTruthy,\n CheckoutService,\n IApiResponse,\n IPaymentObject,\n InputErrorComponent,\n} from '@miden-npm/angular';\nimport { CheckoutIframeComponent } from '../checkout-iframe/checkout-iframe.component';\nimport { finalize, tap } from 'rxjs';\n\n@Component({\n selector: 'bzp-checkout-button',\n standalone: true,\n templateUrl: './checkout-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonComponent, InputErrorComponent, InputErrorComponent, CheckoutIframeComponent],\n})\nexport class CheckoutButtonComponent {\n constructor(\n private checkout: CheckoutService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n errorMessage: string = '';\n loading: boolean = false;\n launchUrl: string = '';\n\n @Input() secretKey: string = '';\n @Input() timeout: number = 30000;\n @Input() environment: 'sandbox' | 'prod' = 'sandbox';\n @Input() mode: 'redirect' | 'iframe' = 'redirect';\n @Input() paymentObject: IPaymentObject = {\n amount: 0,\n currency: '',\n email: '',\n phoneNumber: '',\n narration: '',\n redirectUrl: '',\n };\n\n async generatePaymentLinkHandler(): Promise<void | string> {\n if (!this.secretKey) {\n return (this.errorMessage = 'Secret key is required.');\n }\n\n if (!checkObjectTruthy<IPaymentObject>(this.paymentObject)) {\n return (this.errorMessage = 'Kindly ensure you are passing all the required data.');\n }\n\n this.loading = true;\n this.cdr.markForCheck();\n this.checkout\n .createPaymentLink(this.paymentObject, this.environment, this.secretKey)\n .pipe(\n tap((res: IApiResponse<any>) => {\n if (res?.isSuccessful) {\n this.launchUrl = res.launchUrl ?? '';\n this.errorMessage = 'Payment link created successfully';\n if (this.mode === 'redirect' && this.launchUrl) {\n window.open(this.launchUrl, '_blank', 'noopener,noreferrer');\n }\n } else {\n this.errorMessage = 'Failed to create payment link';\n }\n }),\n finalize(() => {\n this.loading = false;\n this.cdr.markForCheck();\n }),\n )\n .subscribe();\n }\n}\n","@if (launchUrl && mode === 'iframe') {\n <bzp-checkout-iframe\n [url]=\"launchUrl\"\n [secretKey]=\"secretKey\"\n [environment]=\"environment\"\n ></bzp-checkout-iframe>\n} @else {\n <base-button\n label=\"Pay\"\n type=\"primary\"\n customClass=\"w-full\"\n [loading]=\"loading\"\n (onClick)=\"generatePaymentLinkHandler()\"\n ></base-button>\n <base-input-error [errorMessage]=\"errorMessage\"></base-input-error>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"miden-npm-angular-buzapay-checkout.mjs","sources":["../../buzapay-checkout/src/lib/components/pay-by-card/pay-by-card.component.ts","../../buzapay-checkout/src/lib/components/pay-by-card/pay-by-card.component.html","../../buzapay-checkout/src/lib/components/pay-by-transfer/pay-by-transfer.component.ts","../../buzapay-checkout/src/lib/components/pay-by-transfer/pay-by-transfer.component.html","../../buzapay-checkout/src/lib/components/pay-by-stable-coin/pay-by-stable-coin.component.ts","../../buzapay-checkout/src/lib/components/pay-by-stable-coin/pay-by-stable-coin.component.html","../../buzapay-checkout/src/lib/checkout-card/checkout-card.component.ts","../../buzapay-checkout/src/lib/checkout-card/checkout-card.component.html","../../buzapay-checkout/src/lib/checkout-iframe/checkout-iframe.component.ts","../../buzapay-checkout/src/lib/checkout-iframe/checkout-iframe.component.html","../../buzapay-checkout/src/lib/checkout-button/checkout-button.component.ts","../../buzapay-checkout/src/lib/checkout-button/checkout-button.component.html","../../buzapay-checkout/miden-npm-angular-buzapay-checkout.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { ButtonComponent, InputComponent, SelectComponent } from '@miden-npm/angular';\n\n@Component({\n selector: 'pay-by-card',\n standalone: true,\n templateUrl: './pay-by-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonComponent, InputComponent, SelectComponent],\n})\nexport class PayByCardComponent {\n formIndex: number = 0;\n setFormIndex(index: number) {\n this.formIndex = index;\n }\n}\n","<div class=\"flex flex-col gap-6\">\n <!-- Billing Details -->\n @if (formIndex === 0) {\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\">\n <base-input label=\"First Name\" [required]=\"true\"></base-input>\n <base-input label=\"Last Name\" [required]=\"true\"></base-input>\n <base-input label=\"Email\"></base-input>\n <base-input label=\"Phone Number\"></base-input>\n <base-select\n label=\"Select Country\"\n [required]=\"true\"\n [options]=\"[\n { label: 'United States', value: 'US' },\n { label: 'Canada', value: 'CA' },\n { label: 'United Kingdom', value: 'UK' },\n ]\"\n ></base-select>\n <base-select\n label=\"Select State\"\n [required]=\"true\"\n [options]=\"[\n { label: 'California', value: 'CA' },\n { label: 'Texas', value: 'TX' },\n { label: 'New York', value: 'NY' },\n ]\"\n ></base-select>\n <base-input label=\"City\" [required]=\"true\"></base-input>\n <base-input label=\"Postal Code\" [required]=\"true\"></base-input>\n <div class=\"col-span-2\">\n <base-input label=\"Street Address\" [required]=\"true\"></base-input>\n </div>\n </div>\n }\n\n <!-- Card Details -->\n @if (formIndex === 1) {\n <div class=\"grid grid-cols-2 gap-6 overflow-y-auto\" style=\"max-height: 320px\">\n <div class=\"col-span-2\">\n <base-input label=\"Card Name\" [required]=\"true\"></base-input>\n </div>\n <div class=\"col-span-2\">\n <base-input label=\"Card Number\" [required]=\"true\"></base-input>\n </div>\n <base-input label=\"Expiry Date\" [required]=\"true\"></base-input>\n <base-input label=\"CVV\" [required]=\"true\"></base-input>\n </div>\n }\n\n <base-button\n [label]=\"formIndex === 0 ? 'Proceed' : 'Pay'\"\n type=\"primary\"\n customClass=\"w-full\"\n (onClick)=\"formIndex === 0 ? setFormIndex(1) : null\"\n ></base-button>\n</div>\n","import {\n ChangeDetectionStrategy,\n Component,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { LabelInfoComponent, CopyComponent, ButtonComponent } from '@miden-npm/angular';\n\n@Component({\n selector: 'pay-by-transfer',\n standalone: true,\n templateUrl: './pay-by-transfer.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelInfoComponent, CopyComponent, ButtonComponent],\n})\nexport class PayByTransferComponent implements OnInit, OnDestroy {\n countDownTime = '';\n private remainingSeconds = 30 * 60;\n private intervalId: ReturnType<typeof setInterval> | null = null;\n\n constructor(private cdr: ChangeDetectorRef) {}\n\n private updateDisplay(): void {\n const minutes = Math.floor(this.remainingSeconds / 60);\n const seconds = this.remainingSeconds % 60;\n this.countDownTime = `${String(minutes).padStart(2, '0')}:${String(seconds).padStart(2, '0')}`;\n this.cdr.markForCheck(); // 👈 notify OnPush to re-render\n }\n\n private startTimer(): void {\n this.updateDisplay();\n this.intervalId = setInterval(() => {\n this.remainingSeconds--;\n\n if (this.remainingSeconds < 0) {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n this.countDownTime = '00:00';\n this.cdr.markForCheck();\n return;\n }\n\n this.updateDisplay();\n }, 1000);\n }\n\n ngOnInit(): void {\n this.startTimer();\n }\n\n ngOnDestroy(): void {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n this.intervalId = null;\n }\n }\n}\n","<div class=\"flex flex-col gap-10\">\n <p class=\"text-sub-copy text-sm font-semibold text-center\">Amount to Pay NGN 200,500.00</p>\n\n <div class=\"bg-[#EFF7FF] p-4 rounded-lg flex flex-col gap-6\">\n <base-label-info label=\"Bank Name\" value=\"Teerus MFB\"></base-label-info>\n <div class=\"flex items-center justify-between\">\n <base-label-info label=\"Account Number\" value=\"0001928940\"></base-label-info>\n <base-copy color=\"#9DBFDE\"></base-copy>\n </div>\n <div class=\"flex items-center justify-between\">\n <base-label-info label=\"Amount\" value=\"NGN 200,500.00\"></base-label-info>\n <base-copy color=\"#9DBFDE\"></base-copy>\n </div>\n </div>\n\n <p class=\"w-2/3 mx-auto text-center text-body-2xs font-medium text-sub-copy\">\n This account is for this transaction only and expires in\n <span class=\"text-orange-500\">{{ countDownTime }}</span>\n </p>\n\n <div class=\"flex flex-col gap-4\">\n <base-button label=\"I have paid the money\" type=\"primary\" customClass=\"w-full\"></base-button>\n <p class=\"text-heading-text text-body-2xs font-medium text-center py-2 cursor-pointer\">Cancel Payment</p>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\nimport {\n ButtonComponent,\n CopyComponent,\n CurrencyAmountComponent,\n IconArrowSwapComponent,\n ImageComponent,\n SelectComponent,\n} from '@miden-npm/angular';\n\n@Component({\n selector: 'pay-by-stable-coin',\n standalone: true,\n templateUrl: './pay-by-stable-coin.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n SelectComponent,\n ButtonComponent,\n ImageComponent,\n CurrencyAmountComponent,\n CopyComponent,\n IconArrowSwapComponent,\n ],\n})\nexport class PayByStableCoinComponent {\n @Output() proceedToPay = new EventEmitter<void>();\n\n formIndex: number = 0;\n setFormIndex(index: number): void {\n this.formIndex = index;\n }\n\n payHandler(): void {\n this.setFormIndex(1);\n this.proceedToPay.emit();\n }\n}\n","<div class=\"flex flex-col gap-6\">\n @if (formIndex === 0) {\n <div class=\"grid grid-cols-1 gap-6\">\n <base-select\n label=\"Select Crypto\"\n [required]=\"true\"\n [options]=\"[\n { label: 'USDT', value: 'USDT' },\n { label: 'USDC', value: 'USDC' },\n { label: 'BUSD', value: 'BUSD' },\n ]\"\n ></base-select>\n <base-select\n label=\"Select Network\"\n [required]=\"true\"\n [options]=\"[\n { label: 'Ethereum', value: 'ETH' },\n { label: 'Binance Smart Chain', value: 'BSC' },\n { label: 'Polygon', value: 'MATIC' },\n ]\"\n ></base-select>\n </div>\n\n <base-button\n label=\"Pay\"\n type=\"primary\"\n customClass=\"w-full\"\n (onClick)=\"payHandler()\"\n ></base-button>\n }\n\n @if (formIndex === 1) {\n <div class=\"flex flex-col gap-6\">\n <div class=\"mx-auto\">\n <base-image\n src=\"../../../assets/images/stable-coin-qr-code.png\"\n alt=\"QR Code\"\n [width]=\"122\"\n [height]=\"122\"\n class=\"mb-1\"\n ></base-image>\n <p class=\"mb-0 text-body-4xs text-light-copy font-normal text-center\">USDC</p>\n </div>\n\n <div class=\"flex flex-col gap-6 border-c border-grey-100 p-4 rounded-2xl bg-light-white-50\">\n <div class=\"border-b border-grey-border pb-4 flex flex-col gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">Network</p>\n <div class=\"flex justify-between\">\n <div class=\"flex flex-col gap-1\">\n <p class=\"mb-0 text-body-2xs font-medium text-sub-copy\">BNB Smart Chain (BEP20)</p>\n <div class=\"flex items-center gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">*Est. arrival = 3 mins</p>\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">|</p>\n <base-currency-amount\n currency=\"USDC\"\n [amount]=\"10\"\n textClass=\"mb-0 text-body-3xs text-light-copy font-normal\"\n iconColorClass=\"#557591\"\n iconWidth=\"12\"\n iconHeight=\"12\"\n ></base-currency-amount>\n </div>\n </div>\n <icon-arrow-swap></icon-arrow-swap>\n </div>\n </div>\n\n <div class=\"pb-4 flex flex-col gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">Deposit Address ></p>\n <div class=\"flex justify-between\">\n <p class=\"mb-0 text-body-2xs font-medium text-sub-copy w-2/3 break-words\">\n 0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6\n </p>\n <base-copy copyText=\"0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6\"></base-copy>\n </div>\n </div>\n\n <!-- <div class=\"pb-4 flex flex-col gap-2\">\n <p class=\"mb-0 text-body-3xs text-light-copy font-normal\">Memo ></p>\n <div class=\"flex justify-between\">\n <p\n class=\"mb-0 text-body-2xs font-medium text-sub-copy w-2/3 break-words\"\n >\n 0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6\n </p>\n <app-copy\n [isCopyIcon]=\"true\"\n [copyText]=\"'0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6'\"\n ></app-copy>\n </div>\n </div> -->\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <div class=\"flex items-center justify-between border-b border-grey-border py-3\">\n <p class=\"mb-0 text-body-2xs font-medium text-primary-black\">Network fee</p>\n <base-currency-amount\n currency=\"USDC\"\n [amount]=\"12\"\n textClass=\"mb-0 text-body-2xs font-extrabold text-primary-black\"\n iconColorClass=\"#231F20\"\n ></base-currency-amount>\n </div>\n\n <div class=\"flex items-center justify-between py-4\">\n <p class=\"mb-0 text-body-lg font-semibold text-primary-black\">Pay</p>\n <base-currency-amount\n currency=\"USDC\"\n [amount]=\"15\"\n textClass=\"mb-0 text-body-lg font-extrabold text-primary-black\"\n iconColorClass=\"#231F20\"\n iconWidth=\"20\"\n iconHeight=\"20\"\n ></base-currency-amount>\n </div>\n </div>\n\n <div class=\"flex flex-col gap-6\">\n <base-button label=\"Confirm Payment\" type=\"primary\" customClass=\"w-full\"></base-button>\n </div>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport {\n ISelectOption,\n RadioGroupComponent,\n ImageComponent,\n SuccessComponent,\n CardComponent,\n IPaymentObject,\n formatAmount,\n} from '@miden-npm/angular';\nimport { PayByCardComponent } from '../components/pay-by-card/pay-by-card.component';\nimport { PayByTransferComponent } from '../components/pay-by-transfer/pay-by-transfer.component';\nimport { PayByStableCoinComponent } from '../components/pay-by-stable-coin/pay-by-stable-coin.component';\n\nexport interface CheckoutIframeStyle {\n [cssProp: string]: string | number;\n}\n\nexport interface CheckoutCardOptions {\n imageUrl?: string;\n numberPlaceholder?: string;\n expiryPlaceholder?: string;\n cvcPlaceholder?: string;\n styles?: {\n base?: CheckoutIframeStyle;\n invalid?: CheckoutIframeStyle;\n focus?: CheckoutIframeStyle;\n };\n}\n\nexport interface TokenizeResult {\n token: string;\n last4?: string;\n brand?: string;\n}\n\n@Component({\n selector: 'bzp-checkout-card',\n standalone: true,\n templateUrl: './checkout-card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n RadioGroupComponent,\n ImageComponent,\n PayByCardComponent,\n PayByTransferComponent,\n PayByStableCoinComponent,\n SuccessComponent,\n CardComponent,\n ],\n})\nexport class CheckoutCardComponent {\n @Input() options: CheckoutCardOptions | null = null;\n @Input() secretKey: string = '';\n @Input() environment: 'sandbox' | 'prod' = 'sandbox';\n @Input() paymentObject: IPaymentObject = {\n amount: 0,\n currency: '',\n email: '',\n phoneNumber: '',\n narration: '',\n redirectUrl: '',\n };\n @Output() ready = new EventEmitter<void>();\n @Output() validityChange = new EventEmitter<{ valid: boolean; field?: string }>();\n @Output() tokenize = new EventEmitter<TokenizeResult>();\n\n checkoutState: 'STABLE_COIN_PAYMENT' | 'PAYMENT' | 'SUCCESS' = 'PAYMENT';\n\n countryOptions: ISelectOption[] = [\n {\n label: 'Nigeria',\n value: 'Nigeria',\n },\n {\n label: 'Ghana',\n value: 'Ghana',\n },\n ];\n\n paymentTypeOptions: ISelectOption[] = [\n { label: 'Card', value: 'CARD' },\n { label: 'Bank Transfer', value: 'BANK_TRANSFER' },\n { label: 'Stable Coin', value: 'STABLE_COIN' },\n ];\n paymentType: string = this.paymentTypeOptions[0].value;\n\n get filteredPaymentTypeOptions(): ISelectOption[] {\n if (this.paymentObject.currency === 'USD') {\n return this.paymentTypeOptions.filter((option) => option.value !== 'BANK_TRANSFER');\n }\n return this.paymentTypeOptions.filter((option) => option.value !== 'STABLE_COIN');\n }\n\n get formatAmountHandler(): string {\n return formatAmount(this.paymentObject.amount, this.paymentObject.currency);\n }\n\n paymentTypeHandler(event: string): void {\n this.paymentType = event;\n }\n\n payStableCoinHandler(): void {\n this.checkoutState = 'STABLE_COIN_PAYMENT';\n }\n}\n","<base-card [showBackButton]=\"checkoutState === 'STABLE_COIN_PAYMENT'\">\n <div class=\"grid grid-cols-3\">\n @if (checkoutState === 'PAYMENT') {\n <div class=\"bg-[#EFF7FF] px-6 py-8 flex flex-col gap-5 col-span-1 rounded-l-xl\">\n <p class=\"text-heading-text text-body-xs font-semibold\">Pay with</p>\n <base-radio-group\n [options]=\"filteredPaymentTypeOptions\"\n (selectedChange)=\"paymentTypeHandler($event)\"\n ></base-radio-group>\n </div>\n }\n\n <div class=\"col-span-2\">\n @if (checkoutState === 'PAYMENT' || checkoutState === 'STABLE_COIN_PAYMENT') {\n @if (checkoutState === 'PAYMENT') {\n <div class=\"flex items-center justify-between px-12 py-8\">\n @if (options?.imageUrl) {\n <base-image\n [src]=\"options?.imageUrl ?? ''\"\n alt=\"Merchant Logo\"\n [width]=\"52\"\n [height]=\"52\"\n class=\"rounded-lg\"\n ></base-image>\n } @else {\n <div\n class=\"bg-heading-text rounded flex flex-col justify-center\"\n style=\"width: 52px; height: 52px\"\n >\n <p class=\"text-white text-center text-body-2xs font-medium\">Logo</p>\n </div>\n }\n\n <div class=\"flex flex-col gap-1\">\n <p class=\"text-body-2xs font-regular text-sub-copy text-right\">\n Raymahni Merchant LLC\n </p>\n <p class=\"text-body-2xs font-regular text-sub-copy text-right\">\n Pay:\n <span class=\"text-orange-500 font-extrabold\">{{ formatAmountHandler }}</span>\n </p>\n </div>\n </div>\n }\n\n <div class=\"overflow-y-scroll px-10 pb-10 pt-2\">\n @if (paymentType === 'CARD') {\n <pay-by-card></pay-by-card>\n } @else if (paymentType === 'BANK_TRANSFER') {\n <pay-by-transfer></pay-by-transfer>\n } @else {\n <pay-by-stable-coin (proceedToPay)=\"payStableCoinHandler()\"></pay-by-stable-coin>\n }\n </div>\n } @else if (checkoutState === 'SUCCESS') {\n <base-success></base-success>\n }\n </div>\n </div>\n</base-card>\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n Renderer2,\n ViewChild,\n} from '@angular/core';\nimport {\n checkObjectTruthy,\n CheckoutService,\n IApiResponse,\n IPaymentObject,\n IconLoaderComponent,\n} from '@miden-npm/angular';\nimport { finalize, tap } from 'rxjs';\n\ninterface IIframeStyle {\n width?: string;\n height?: string;\n border?: string;\n borderRadius?: string;\n overflow?: string;\n}\n\n@Component({\n selector: 'bzp-checkout-iframe',\n standalone: true,\n templateUrl: './checkout-iframe.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconLoaderComponent, CommonModule],\n})\nexport class CheckoutIframeComponent implements AfterViewInit {\n constructor(\n private renderer: Renderer2,\n private cdr: ChangeDetectorRef,\n private checkout: CheckoutService,\n ) {}\n\n errorMessage: string = '';\n loading: boolean = false;\n launchUrl: string = '';\n iframe: any;\n\n @Input() secretKey: string = '';\n @Input() url: string = '';\n @Input() style: IIframeStyle = {\n width: '100%',\n height: '100vh',\n border: '0',\n borderRadius: '6px',\n overflow: 'hidden',\n };\n @Input() environment: 'sandbox' | 'prod' = 'sandbox';\n @Input() paymentObject: IPaymentObject = {\n amount: 0,\n currency: '',\n email: '',\n phoneNumber: '',\n narration: '',\n redirectUrl: '',\n };\n @ViewChild('container', { static: false }) container?: ElementRef<HTMLDivElement>;\n\n get blockStyle() {\n return {\n ...(this.style || {}),\n };\n }\n\n launchIframe(url: string): void {\n const host = this.container?.nativeElement;\n if (!host) return; // guard: container not in DOM yet\n this.iframe = this.renderer.createElement('iframe');\n this.renderer.setAttribute(this.iframe, 'src', url);\n this.renderer.setStyle(this.iframe, 'width', this.style.width);\n this.renderer.setStyle(this.iframe, 'height', this.style.height);\n this.renderer.setStyle(this.iframe, 'border', this.style.border);\n this.renderer.setStyle(this.iframe, 'borderRadius', this.style.borderRadius);\n this.renderer.setStyle(this.iframe, 'overflow', this.style.overflow);\n this.renderer.appendChild(host, this.iframe);\n }\n\n async generatePaymentLinkHandler(): Promise<void | string> {\n if (this.url) {\n this.launchIframe(this.url);\n return;\n }\n\n if (!this.secretKey) {\n return (this.errorMessage = 'Secret key is required.');\n }\n\n if (!checkObjectTruthy<IPaymentObject>(this.paymentObject)) {\n return (this.errorMessage = 'Kindly ensure you are passing all the required data.');\n }\n\n this.loading = true;\n this.cdr.markForCheck();\n this.checkout\n .createPaymentLink(this.paymentObject, this.environment, this.secretKey)\n .pipe(\n tap((res: IApiResponse<any>) => {\n if (res?.isSuccessful) {\n this.launchUrl = res.launchUrl ?? '';\n this.errorMessage = 'Payment link created successfully';\n if (this.launchUrl) {\n this.launchIframe(this.launchUrl);\n }\n } else {\n this.errorMessage = 'Failed to create payment link';\n }\n }),\n finalize(() => {\n this.loading = false;\n this.cdr.markForCheck();\n }),\n )\n .subscribe();\n }\n\n async ngAfterViewInit(): Promise<void> {\n await this.generatePaymentLinkHandler();\n }\n}\n","<div class=\"relative\" [ngStyle]=\"blockStyle\">\n <div #container class=\"w-full h-full\"></div>\n\n @if (loading) {\n <div class=\"absolute inset-0 grid place-items-center bg-white/60\">\n <icon-loader></icon-loader>\n </div>\n }\n</div>\n","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input } from '@angular/core';\nimport {\n ButtonComponent,\n checkObjectTruthy,\n CheckoutService,\n IApiResponse,\n IPaymentObject,\n InputErrorComponent,\n} from '@miden-npm/angular';\nimport { CheckoutIframeComponent } from '../checkout-iframe/checkout-iframe.component';\nimport { finalize, tap } from 'rxjs';\n\n@Component({\n selector: 'bzp-checkout-button',\n standalone: true,\n templateUrl: './checkout-button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ButtonComponent, InputErrorComponent, InputErrorComponent, CheckoutIframeComponent],\n})\nexport class CheckoutButtonComponent {\n constructor(\n private checkout: CheckoutService,\n private cdr: ChangeDetectorRef,\n ) {}\n\n errorMessage: string = '';\n loading: boolean = false;\n launchUrl: string = '';\n\n @Input() secretKey: string = '';\n @Input() timeout: number = 30000;\n @Input() environment: 'sandbox' | 'prod' = 'sandbox';\n @Input() mode: 'redirect' | 'iframe' = 'redirect';\n @Input() paymentObject: IPaymentObject = {\n amount: 0,\n currency: '',\n email: '',\n phoneNumber: '',\n narration: '',\n redirectUrl: '',\n };\n\n async generatePaymentLinkHandler(): Promise<void | string> {\n if (!this.secretKey) {\n return (this.errorMessage = 'Secret key is required.');\n }\n\n if (!checkObjectTruthy<IPaymentObject>(this.paymentObject)) {\n return (this.errorMessage = 'Kindly ensure you are passing all the required data.');\n }\n\n this.loading = true;\n this.cdr.markForCheck();\n this.checkout\n .createPaymentLink(this.paymentObject, this.environment, this.secretKey)\n .pipe(\n tap((res: IApiResponse<any>) => {\n if (res?.isSuccessful) {\n this.launchUrl = res.launchUrl ?? '';\n this.errorMessage = 'Payment link created successfully';\n if (this.mode === 'redirect' && this.launchUrl) {\n window.open(this.launchUrl, '_blank', 'noopener,noreferrer');\n }\n } else {\n this.errorMessage = 'Failed to create payment link';\n }\n }),\n finalize(() => {\n this.loading = false;\n this.cdr.markForCheck();\n }),\n )\n .subscribe();\n }\n}\n","@if (launchUrl && mode === 'iframe') {\n <bzp-checkout-iframe\n [url]=\"launchUrl\"\n [secretKey]=\"secretKey\"\n [environment]=\"environment\"\n ></bzp-checkout-iframe>\n} @else {\n <base-button\n label=\"Pay\"\n type=\"primary\"\n customClass=\"w-full\"\n [loading]=\"loading\"\n (onClick)=\"generatePaymentLinkHandler()\"\n ></base-button>\n <base-input-error [errorMessage]=\"errorMessage\"></base-input-error>\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|