@miden-npm/angular 0.0.1 → 0.0.3
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.
- package/buzapay-checkout/index.d.ts +1 -1
- package/fesm2022/miden-npm-angular-buzapay-checkout.mjs +9 -4
- package/fesm2022/miden-npm-angular-buzapay-checkout.mjs.map +1 -1
- package/fesm2022/miden-npm-angular.mjs +1 -1
- package/fesm2022/miden-npm-angular.mjs.map +1 -1
- package/package.json +1 -1
- package/styles.css +1 -0
|
@@ -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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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"miden-npm-angular.mjs","sources":["../../src/lib/miden-pg-angular.ts","../../src/lib/tokens.ts","../../src/lib/interceptors/auth.interceptor.ts","../../src/lib/interceptors/idempotency.interceptor.ts","../../src/lib/providers.ts","../../src/lib/components/icons/icon-loader/icon-loader.component.ts","../../src/lib/components/icons/icon-loader/icon-loader.component.html","../../src/lib/components/icons/icon-chevron-up/icon-chevron-up.component.ts","../../src/lib/components/icons/icon-chevron-up/icon-chevron-up.component.html","../../src/lib/components/icons/icon-chevron-down/icon-chevron-down.component.ts","../../src/lib/components/icons/icon-chevron-down/icon-chevron-down.component.html","../../src/lib/components/icons/icon-buzapay-icon/icon-buzapay-icon.component.ts","../../src/lib/components/icons/icon-buzapay-icon/icon-buzapay-icon.component.html","../../src/lib/components/icons/icon-copy-success/icon-copy-success.component.ts","../../src/lib/components/icons/icon-copy-success/icon-copy-success.component.html","../../src/lib/components/icons/icon-check-circle/icon-check-circle.component.ts","../../src/lib/components/icons/icon-check-circle/icon-check-circle.component.html","../../src/lib/components/icons/icon-chevron-left/icon-chevron-left.component.ts","../../src/lib/components/icons/icon-chevron-left/icon-chevron-left.component.html","../../src/lib/components/icons/icon-usdc/icon-usdc.component.ts","../../src/lib/components/icons/icon-usdc/icon-usdc.component.html","../../src/lib/components/icons/icon-usdt/icon-usdt.component.ts","../../src/lib/components/icons/icon-usdt/icon-usdt.component.html","../../src/lib/components/icons/icon-arrow-swap/icon-arrow-swap.component.ts","../../src/lib/components/icons/icon-arrow-swap/icon-arrow-swap.component.html","../../src/lib/components/base/button/button.component.ts","../../src/lib/components/base/button/button.component.html","../../src/lib/components/base/hint/hint.component.ts","../../src/lib/components/base/hint/hint.component.html","../../src/lib/components/base/input-error/input-error.component.ts","../../src/lib/components/base/input-error/input-error.component.html","../../src/lib/components/base/image/image.component.ts","../../src/lib/components/base/image/image.component.html","../../src/lib/utils/api.util.ts","../../src/lib/utils/input.util.ts","../../src/lib/utils/object.util.ts","../../src/lib/utils/string.util.ts","../../src/lib/components/base/input/input.component.ts","../../src/lib/components/base/input/input.component.html","../../src/lib/components/base/select/select.component.ts","../../src/lib/components/base/select/select.component.html","../../src/lib/components/base/radio-group/radio-group.component.ts","../../src/lib/components/base/radio-group/radio-group.component.html","../../src/lib/components/base/copy/copy.component.ts","../../src/lib/components/base/copy/copy.component.html","../../src/lib/components/base/label-info/label-info.component.ts","../../src/lib/components/base/label-info/label-info.component.html","../../src/lib/components/base/success/success.component.ts","../../src/lib/components/base/success/success.component.html","../../src/lib/components/base/back/back.component.ts","../../src/lib/components/base/back/back.component.html","../../src/lib/components/base/card/card.component.ts","../../src/lib/components/base/card/card.component.html","../../src/lib/components/base/currency-amount/currency-amount.component.ts","../../src/lib/components/base/currency-amount/currency-amount.component.html","../../src/lib/services/checkout.service.ts","../../src/public-api.ts","../../src/miden-npm-angular.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'miden-pg-angular',\n imports: [],\n template: ` <p>miden-pg-angular works!</p> `,\n styles: ``,\n})\nexport class MidenPGAngular {}\n","import { InjectionToken } from '@angular/core';\nimport { BzpConfig } from './types';\n\nexport const BZP_CONFIG = new InjectionToken<BzpConfig>('BZP_CONFIG');\nexport const BZP_CORRELATION_ID = new InjectionToken<string>('BZP_CORRELATION_ID');\n","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { BZP_CONFIG } from '../tokens';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const cfg = inject(BZP_CONFIG);\n const cloned = req.clone({\n setHeaders: {\n 'X-Publishable-Key': cfg.publishableKey,\n },\n });\n return next(cloned);\n};\n","import { HttpInterceptorFn } from '@angular/common/http';\n\nfunction generateIdempotencyKey(): string {\n // Simple RFC4122-ish v4 key; replace with a stronger util if needed\n return (\n 'gw_' +\n crypto\n .getRandomValues(new Uint8Array(16))\n .reduce((a, b) => a + b.toString(16).padStart(2, '0'), '')\n );\n}\n\nexport const idempotencyInterceptor: HttpInterceptorFn = (req, next) => {\n if (req.method === 'POST' || req.method === 'PUT' || req.method === 'PATCH') {\n const key = req.headers.get('Idempotency-Key') || generateIdempotencyKey();\n req = req.clone({ setHeaders: { 'Idempotency-Key': key } });\n }\n return next(req);\n};\n","import { EnvironmentProviders, makeEnvironmentProviders, inject } from '@angular/core';\nimport { provideHttpClient, withInterceptors } from '@angular/common/http';\nimport { BZP_CONFIG } from './tokens';\nimport { BzpConfig } from './types';\nimport { authInterceptor } from './interceptors/auth.interceptor';\nimport { idempotencyInterceptor } from './interceptors/idempotency.interceptor';\n\nexport function provideMidenPG(config: BzpConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: BZP_CONFIG, useValue: config },\n provideHttpClient(withInterceptors([authInterceptor, idempotencyInterceptor])),\n ]);\n}\n\n// Example helper to access base URL from config without directly injecting tokens in apps\nexport function apiBaseUrl(): string {\n const cfg = inject(BZP_CONFIG);\n return cfg.environment.apiBaseUrl;\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-loader',\n templateUrl: './icon-loader.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconLoaderComponent {\n @Input() color: string = 'currentColor';\n @Input() size: string = '20';\n}\n","<svg\n class=\"animate-spin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n>\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" [attr.stroke]=\"color\" stroke-width=\"4\"></circle>\n <path\n class=\"opacity-75\"\n [attr.fill]=\"color\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"\n ></path>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-chevron-up',\n standalone: true,\n templateUrl: './icon-chevron-up.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconChevronUpComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '24';\n @Input() height: string = '24';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g opacity=\"0.7\">\n <path\n d=\"M2.73508 9.73495L7.73508 4.73495C7.80539 4.66473 7.9007 4.62528 8.00008 4.62528C8.09945 4.62528 8.19476 4.66473 8.26508 4.73495L13.2651 9.73495C13.3313 9.80604 13.3674 9.90006 13.3657 9.99722C13.364 10.0944 13.3246 10.1871 13.2559 10.2558C13.1872 10.3245 13.0945 10.3638 12.9973 10.3655C12.9002 10.3673 12.8062 10.3312 12.7351 10.265L8.00008 5.53058L3.26508 10.265C3.19399 10.3312 3.09997 10.3673 3.00282 10.3655C2.90566 10.3638 2.81297 10.3245 2.74427 10.2558C2.67556 10.1871 2.6362 10.0944 2.63449 9.99722C2.63277 9.90006 2.66884 9.80604 2.73508 9.73495Z\"\n [attr.fill]=\"color\"\n />\n </g>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-chevron-down',\n standalone: true,\n templateUrl: './icon-chevron-down.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconChevronDownComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '24';\n @Input() height: string = '24';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g opacity=\"0.6\">\n <path\n d=\"M16.5813 7.83128L10.3313 14.0813C10.2434 14.1691 10.1242 14.2184 10 14.2184C9.87581 14.2184 9.75667 14.1691 9.66878 14.0813L3.41878 7.83128C3.33598 7.74242 3.2909 7.62489 3.29304 7.50345C3.29518 7.38201 3.34438 7.26615 3.43026 7.18026C3.51615 7.09438 3.63201 7.04518 3.75345 7.04304C3.87489 7.0409 3.99242 7.08598 4.08128 7.16878L10 13.0867L15.9188 7.16878C16.0076 7.08598 16.1252 7.0409 16.2466 7.04304C16.368 7.04518 16.4839 7.09438 16.5698 7.18026C16.6557 7.26615 16.7049 7.38201 16.707 7.50345C16.7092 7.62489 16.6641 7.74242 16.5813 7.83128Z\"\n [attr.fill]=\"color\"\n />\n </g>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-buzapay-icon',\n standalone: true,\n templateUrl: './icon-buzapay-icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconBuzapayIconComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '15';\n @Input() height: string = '13';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 15 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M9.97919 0.5C10.8854 0.5 11.6276 0.585938 12.2057 0.757812C12.7891 0.924479 13.2188 1.22396 13.4948 1.65625C13.7761 2.08333 13.9167 2.6901 13.9167 3.47656C13.9167 4.1849 13.7526 4.77083 13.4245 5.23438C13.0964 5.69792 12.5938 5.95312 11.9167 6C12.8021 6.08854 13.4401 6.40625 13.8307 6.95312C14.2214 7.49479 14.4167 8.17708 14.4167 9C14.4167 9.71354 14.3334 10.2995 14.1667 10.7578C14.0052 11.2161 13.7318 11.5729 13.3464 11.8281C12.961 12.0781 12.4375 12.2526 11.7761 12.3516C11.1198 12.4505 10.2995 12.5 9.31512 12.5H0.416687V0.5H9.97919ZM2.91669 7.77344H5.97235V11.167L10.2497 5.22754H7.19501V1.83398L2.91669 7.77344ZM5.97235 6.07617H8.2702L7.19501 7.57324V6.9248H4.89716L5.97235 5.42676V6.07617Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-copy-success',\n standalone: true,\n templateUrl: './icon-copy-success.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconCopySuccessComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '16';\n @Input() height: string = '17';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M11.4002 1.6875H8.60016C5.9935 1.6875 4.8335 2.8475 4.8335 5.45417V6.1875C4.8335 6.46083 5.06016 6.6875 5.3335 6.6875H7.40016C9.46683 6.6875 10.1668 7.3875 10.1668 9.45417V11.5208C10.1668 11.7942 10.3935 12.0208 10.6668 12.0208H11.4002C14.0068 12.0208 15.1668 10.8608 15.1668 8.25417V5.45417C15.1668 2.8475 14.0068 1.6875 11.4002 1.6875ZM5.8335 5.6875V5.45417C5.8335 3.3875 6.5335 2.6875 8.60016 2.6875H11.4002C13.4668 2.6875 14.1668 3.3875 14.1668 5.45417V8.25417C14.1668 10.3208 13.4668 11.0208 11.4002 11.0208H11.1668V9.45417C11.1668 6.8475 10.0068 5.6875 7.40016 5.6875H5.8335Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M7.40016 5.6875H4.60016C1.9935 5.6875 0.833496 6.8475 0.833496 9.45417V12.2542C0.833496 14.8608 1.9935 16.0208 4.60016 16.0208H7.40016C10.0068 16.0208 11.1668 14.8608 11.1668 12.2542V9.45417C11.1668 6.8475 10.0068 5.6875 7.40016 5.6875ZM4.60016 15.0208C2.5335 15.0208 1.8335 14.3208 1.8335 12.2542V9.45417C1.8335 7.3875 2.5335 6.6875 4.60016 6.6875H7.40016C9.46683 6.6875 10.1668 7.3875 10.1668 9.45417V12.2542C10.1668 14.3208 9.46683 15.0208 7.40016 15.0208H4.60016Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M5.35302 12.6542C5.22635 12.6542 5.09969 12.6075 4.99969 12.5075L3.69969 11.2075C3.50635 11.0142 3.50635 10.6942 3.69969 10.5008C3.89302 10.3075 4.21302 10.3075 4.40635 10.5008L5.35302 11.4475L7.59302 9.2075C7.78635 9.01417 8.10635 9.01417 8.29969 9.2075C8.49302 9.40083 8.49302 9.72083 8.29969 9.91417L5.69969 12.5075C5.60635 12.6008 5.47969 12.6542 5.35302 12.6542Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-check-circle',\n standalone: true,\n templateUrl: './icon-check-circle.component.html',\n})\nexport class IconCheckCircleComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '67';\n @Input() height: string = '67';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 67 67\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M33.6705 0.0820312C15.2758 0.0820312 0.36377 14.9941 0.36377 33.3888C0.36377 51.7846 15.2758 66.6956 33.6705 66.6956C52.0663 66.6956 66.9773 51.7846 66.9773 33.3888C66.9773 14.9941 52.0663 0.0820312 33.6705 0.0820312ZM33.6705 62.5978C17.6011 62.5978 4.52712 49.4583 4.52712 33.3887C4.52712 17.3192 17.6011 4.24525 33.6705 4.24525C49.74 4.24525 62.814 17.3193 62.814 33.3887C62.814 49.4581 49.74 62.5978 33.6705 62.5978ZM46.9631 21.2016L27.4213 40.8662L18.621 32.0659C17.8081 31.253 16.4904 31.253 15.6765 32.0659C14.8636 32.8788 14.8636 34.1965 15.6765 35.0094L25.9797 45.3137C26.7926 46.1255 28.1103 46.1255 28.9243 45.3137C29.0179 45.22 29.0981 45.1179 29.171 45.0118L49.9086 24.1461C50.7205 23.3332 50.7205 22.0155 49.9086 21.2016C49.0947 20.3888 47.777 20.3888 46.9631 21.2016Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-chevron-left',\n standalone: true,\n templateUrl: './icon-chevron-left.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconChevronLeftComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '17';\n @Input() height: string = '17';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M10.5 14.28C10.3734 14.28 10.2467 14.2333 10.1467 14.1333L5.80002 9.78668C5.09335 9.08001 5.09335 7.92001 5.80002 7.21335L10.1467 2.86668C10.34 2.67335 10.66 2.67335 10.8534 2.86668C11.0467 3.06001 11.0467 3.38001 10.8534 3.57335L6.50669 7.92001C6.18669 8.24001 6.18669 8.76001 6.50669 9.08001L10.8534 13.4267C11.0467 13.62 11.0467 13.94 10.8534 14.1333C10.7534 14.2267 10.6267 14.28 10.5 14.28Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-usdc',\n standalone: true,\n templateUrl: './icon-usdc.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconUsdcComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '28';\n @Input() height: string = '28';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g clip-path=\"url(#clip0_10908_387048)\">\n <path\n d=\"M14 0C21.7324 0 28 6.26763 28 14C28 21.7324 21.7324 28 14 28C6.26763 28 0 21.7324 0 14C0 6.26763 6.26763 0 14 0ZM16.933 4.865C16.7195 4.76 16.506 4.865 16.4535 5.07762C16.4001 5.131 16.4001 5.18438 16.4001 5.29025V6.034L16.4089 6.125C16.4546 6.30501 16.5652 6.46177 16.7195 6.56512C20.8792 8.05262 23.0125 12.6726 21.4655 16.7615C20.6657 18.9928 18.9061 20.6911 16.7195 21.4883C16.506 21.5941 16.4001 21.7534 16.4001 22.0194V22.7631L16.4045 22.8401C16.4128 22.9241 16.4479 23.0033 16.5047 23.0658C16.5614 23.1284 16.6367 23.171 16.7195 23.1875C16.7729 23.1875 16.8796 23.1875 16.933 23.135C18.1331 22.7602 19.2473 22.1517 20.2113 21.3446C21.1753 20.5375 21.9701 19.5476 22.5499 18.432C23.1298 17.3164 23.4833 16.0972 23.59 14.8444C23.6967 13.5917 23.5546 12.3302 23.1718 11.1326C22.2128 8.10512 19.866 5.8205 16.933 4.865ZM11.2805 4.8125C11.2271 4.8125 11.1204 4.8125 11.067 4.865C9.86688 5.23978 8.75274 5.84826 7.78874 6.6554C6.82475 7.46254 6.02993 8.4524 5.45006 9.56797C4.87019 10.6836 4.51673 11.9028 4.41001 13.1556C4.30329 14.4083 4.44543 15.6698 4.82825 16.8674C5.78725 19.8424 8.08062 22.1261 11.067 23.0816C11.2805 23.1875 11.494 23.0816 11.5465 22.869C11.5999 22.8165 11.5999 22.7622 11.5999 22.6564V21.9126L11.5911 21.8426C11.5544 21.6947 11.417 21.5259 11.2805 21.4349C7.12075 19.9474 4.9875 15.3274 6.5345 11.2385C7.33425 9.00725 9.09388 7.30887 11.2805 6.51175C11.494 6.40587 11.5999 6.24663 11.5999 5.98063V5.23688L11.5955 5.15987C11.5872 5.07585 11.5521 4.99673 11.4954 4.93418C11.4386 4.87163 11.3633 4.82898 11.2805 4.8125ZM14.3736 7.574H13.573L13.496 7.581C13.321 7.616 13.1933 7.7665 13.146 7.99925V9.22075L12.9649 9.24875C11.4704 9.51475 10.5341 10.5464 10.5341 11.823C10.5341 13.5748 11.5999 14.2651 13.8399 14.5311C15.3335 14.7963 15.813 15.1156 15.813 15.9653C15.813 16.814 15.0666 17.3985 14.0534 17.3985C12.6665 17.3985 12.187 16.8149 12.0269 16.0177C11.9744 15.806 11.8134 15.6992 11.6532 15.6992H10.7467L10.6776 15.7054C10.5913 15.7193 10.513 15.7641 10.4572 15.8313C10.4014 15.8985 10.3718 15.9838 10.374 16.0711V16.1236L10.4029 16.2811C10.6566 17.5271 11.5106 18.4187 13.2003 18.6734V19.9483L13.2072 20.0252C13.2422 20.1985 13.3936 20.3263 13.6273 20.3726H14.427L14.504 20.3656C14.679 20.3306 14.8067 20.1801 14.854 19.9483V18.6725L15.0351 18.6375C16.534 18.3207 17.5201 17.2366 17.5201 15.8576C17.5201 13.9991 16.4001 13.3621 14.1601 13.0961C12.5598 12.8835 12.2404 12.4591 12.2404 11.7154C12.2404 10.9716 12.7741 10.4939 13.8399 10.4939C14.7998 10.4939 15.3335 10.8124 15.5995 11.6095C15.6272 11.6866 15.6779 11.7533 15.7447 11.8007C15.8115 11.8481 15.8912 11.8739 15.9731 11.8746H16.8262L16.8954 11.8694C16.982 11.8556 17.0606 11.8108 17.1166 11.7434C17.1726 11.6759 17.2022 11.5904 17.1999 11.5027V11.4503L17.1675 11.2989C17.0361 10.755 16.7366 10.2664 16.3115 9.90255C15.8864 9.53872 15.3574 9.31821 14.7997 9.27238V7.99925L14.7928 7.92225C14.7578 7.74812 14.6073 7.62038 14.3736 7.574Z\"\n [attr.fill]=\"color\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10908_387048\">\n <rect width=\"28\" height=\"28\" [attr.fill]=\"color\" />\n </clipPath>\n </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-usdt',\n standalone: true,\n templateUrl: './icon-usdt.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconUsdtComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '28';\n @Input() height: string = '28';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g clip-path=\"url(#clip0_10908_387045)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 28C6.26763 28 0 21.7324 0 14C0 6.26763 6.26763 0 14 0C21.7324 0 28 6.26763 28 14C28 21.7324 21.7324 28 14 28ZM15.6818 12.0689V9.99863H20.419V6.84162H7.52063V9.99863H12.2579V12.068C8.40787 12.2447 5.5125 13.0077 5.5125 13.9212C5.5125 14.8347 8.40787 15.5969 12.2579 15.7745V22.4088H15.6818V15.7727C19.5256 15.596 22.414 14.8339 22.414 13.9212C22.414 13.0086 19.5256 12.2465 15.6818 12.0689ZM15.6818 15.2101V15.2084C15.5855 15.2154 15.0894 15.2451 13.9825 15.2451C13.0987 15.2451 12.4766 15.2189 12.2579 15.2084V15.211C8.85587 15.0614 6.31662 14.469 6.31662 13.7602C6.31662 13.0524 8.85587 12.46 12.2579 12.3077V14.6212C12.4801 14.637 13.1171 14.6746 13.9974 14.6746C15.0535 14.6746 15.5829 14.6309 15.6818 14.6221V12.3095C19.0768 12.4609 21.6099 13.0532 21.6099 13.7602C21.6099 14.469 19.0768 15.0596 15.6818 15.2101Z\"\n [attr.fill]=\"color\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10908_387045\">\n <rect width=\"28\" height=\"28\" [attr.fill]=\"color\" />\n </clipPath>\n </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-arrow-swap',\n standalone: true,\n templateUrl: './icon-arrow-swap.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconArrowSwapComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '16';\n @Input() height: string = '17';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M10.3265 14.1948C10.1998 14.1948 10.0731 14.1481 9.97313 14.0481C9.77979 13.8548 9.77979 13.5348 9.97313 13.3414L13.3131 10.0014C13.5065 9.80811 13.8265 9.80811 14.0198 10.0014C14.2131 10.1948 14.2131 10.5148 14.0198 10.7081L10.6798 14.0481C10.5798 14.1414 10.4531 14.1948 10.3265 14.1948Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M13.6668 10.8477H2.3335C2.06016 10.8477 1.8335 10.621 1.8335 10.3477C1.8335 10.0743 2.06016 9.84766 2.3335 9.84766H13.6668C13.9402 9.84766 14.1668 10.0743 14.1668 10.3477C14.1668 10.621 13.9402 10.8477 13.6668 10.8477Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M2.33329 6.86079C2.20663 6.86079 2.07996 6.81413 1.97996 6.71413C1.78663 6.52079 1.78663 6.20079 1.97996 6.00746L5.31996 2.66746C5.51329 2.47413 5.83329 2.47413 6.02663 2.66746C6.21996 2.86079 6.21996 3.18079 6.02663 3.37413L2.68663 6.71413C2.59329 6.80746 2.45996 6.86079 2.33329 6.86079Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M13.6668 6.86133H2.3335C2.06016 6.86133 1.8335 6.63466 1.8335 6.36133C1.8335 6.08799 2.06016 5.86133 2.3335 5.86133H13.6668C13.9402 5.86133 14.1668 6.08799 14.1668 6.36133C14.1668 6.63466 13.9402 6.86133 13.6668 6.86133Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconLoaderComponent } from '../../icons';\n\n@Component({\n selector: 'base-button',\n standalone: true,\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, IconLoaderComponent],\n})\nexport class ButtonComponent {\n @Input() label: string = '';\n @Input() type: 'primary' | 'secondary' | 'danger' | 'neutral' = 'neutral';\n @Input() size: 'de' | 'sm' | 'md' | 'lg' = 'de';\n @Input() paddingClassX: string = 'px-8';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() customClass: string = '';\n @Output() onClick = new EventEmitter();\n\n clickHandler() {\n this.onClick.emit();\n }\n\n get getButtonBgClass(): string {\n if (this.disabled) {\n return 'bg-gray-200 text-gray-400 cursor-not-allowed border-gray-200';\n }\n\n switch (this.type) {\n case 'primary':\n return 'bg-primary text-white hover:bg-primary-black hover:border-primary-black border-primary';\n case 'secondary':\n return 'bg-gray-200 border-gray-200 hover:bg-gray-300 text-heading-text';\n case 'danger':\n return 'bg-red-500 border-red-500 text-white hover:bg-red-600';\n case 'neutral':\n default:\n return 'bg-off-white border-grey-border hover:bg-gray-100';\n }\n }\n\n get getButtonSizeClass(): string {\n switch (this.size) {\n case 'de':\n return 'h-68px rounded-xl';\n case 'md':\n return 'h-42px rounded-lg';\n case 'sm':\n return 'h-32px rounded-md';\n default:\n return 'h-68px rounded-xl';\n }\n }\n\n get getLabelSizeClass(): string {\n switch (this.size) {\n case 'de':\n return 'text-body-2xs font-normal';\n case 'md':\n return 'text-body-2xs font-normal';\n case 'sm':\n return 'text-body-2xs font-normal';\n default:\n return 'text-body-xs font-normal';\n }\n }\n}\n","<button\n class=\"flex items-center justify-center gap-2 py-3 border font-normal text-input-grey transition-colors duration-300 ease-in-out\"\n [ngClass]=\"[getButtonBgClass, getButtonSizeClass, customClass, paddingClassX]\"\n [disabled]=\"disabled || loading\"\n (click)=\"!disabled && clickHandler()\"\n>\n <ng-content select=\"[slot=prefix]\"></ng-content>\n\n @if (loading) {\n <icon-loader size=\"24\"></icon-loader>\n } @else {\n <div>\n @if (label) {\n <p class=\"mb-0\" [ngClass]=\"[getLabelSizeClass]\">\n {{ label }}\n </p>\n } @else {\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n }\n </div>\n }\n\n <ng-content select=\"[slot=suffix]\"></ng-content>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-hint',\n standalone: true,\n templateUrl: './hint.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HintComponent {\n @Input() hint: string = '';\n}\n","<p class=\"mb-0 text-body-3xs font-medium text-orange-500\">\n {{ hint }}\n</p>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-input-error',\n standalone: true,\n templateUrl: './input-error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputErrorComponent {\n @Input() errorMessage: string = '';\n}\n","<p class=\"mb-0 text-body-3xs font-normal text-red-500\">\n {{ errorMessage }}\n</p>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'base-image',\n standalone: true,\n templateUrl: './image.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class ImageComponent {\n @Input() src: string = '';\n @Input() alt?: string = 'Image';\n @Input() isFullWidth: boolean = false;\n @Input() width?: number = 50;\n @Input() height?: number = 50;\n @Input() customClass?: string = '';\n @Output() onClick = new EventEmitter();\n\n clickHandler(): void {\n this.onClick.emit();\n }\n}\n","<img\n [src]=\"src\"\n [height]=\"height\"\n [alt]=\"alt\"\n [ngClass]=\"[customClass, isFullWidth ? 'w-full' : '']\"\n [style.width]=\"isFullWidth ? '100%' : width + 'px'\"\n (click)=\"clickHandler()\"\n/>\n","export const getBaseUrl = (mode: string): string => {\n return mode === 'sandbox' ? 'https://sandbox-api.midencards.io/payment-gateway-api' : '';\n};\n","export const restrictToNumericKeys = (event: KeyboardEvent): void => {\n const allowedKeys = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight', 'Delete', 'Home', 'End', '.'];\n\n if ((event.ctrlKey || event.metaKey) && ['a', 'c', 'v', 'x'].includes(event.key.toLowerCase())) {\n return; // allow copy/paste/select\n }\n\n // Prevent non-numeric keys\n if (!allowedKeys.includes(event.key) && !/^\\d$/.test(event.key)) {\n event.preventDefault();\n }\n\n // Prevent multiple decimals\n if (event.key === '.' && (event.target as HTMLInputElement).value.includes('.')) {\n event.preventDefault();\n }\n};\n","export const checkObjectTruthy = <T extends object>(obj: T): boolean => {\n if (obj == null || typeof obj !== 'object') return false;\n return Object.values(obj as Record<string, unknown>).every(Boolean);\n};\n","export const currencySign = (currency: string): string => {\n if (currency === 'USD') return '$';\n if (currency === 'NGN') return '₦';\n if (currency === 'EUR') return '€';\n if (currency === 'GBP') return '£';\n if (currency === 'JPY') return '¥';\n if (currency === 'CNY') return '¥';\n if (currency === 'USDC' || currency === 'usdc') return '$⧫';\n if (currency === 'USDT' || currency === 'usdt') return '₮';\n return '$';\n};\n\nexport const formatAmount = (value: number | string, currency?: string): string => {\n const num = typeof value === 'string' ? parseFloat(value) : value;\n if (isNaN(num)) return '0';\n return `${currency ? currencySign(currency) : ''} ${num?.toLocaleString('en-US')}`;\n};\n\nexport const truncateString = (str: string, num: number): string => {\n if (str.length <= num) {\n return str;\n }\n return str.slice(0, num) + '...';\n};\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n} from '@angular/core';\nimport { IconLoaderComponent } from '../../icons';\nimport { HintComponent } from '../hint/hint.component';\nimport { InputErrorComponent } from '../input-error/input-error.component';\nimport { ImageComponent } from '../image/image.component';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { formatAmount, restrictToNumericKeys } from '../../../utils';\n\n@Component({\n selector: 'base-input',\n standalone: true,\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, IconLoaderComponent, HintComponent, InputErrorComponent, ImageComponent],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true,\n },\n ],\n})\nexport class InputComponent {\n value: string = '';\n formattedValue: string = '';\n\n @Input() label: string = '';\n @Input() type: string = 'text'; // default to text input\n @Input() placeholder: string = '';\n @Input() validationError: string = '';\n @Input() hint: string = '';\n @Input() mask: string = '';\n @Input() rules: string[] = []; // allowed rules are numeric\n @Input() isAmountInput: boolean = false;\n @Input() required: boolean = false;\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() showCopyIcon: boolean = false;\n @Output() onInputChange = new EventEmitter<string>();\n @Output() onInputBlur = new EventEmitter<string>();\n\n constructor() {}\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n copyToClipboard(text: string): Promise<void> {\n return navigator.clipboard.writeText(text);\n }\n\n copyHandler(): void {\n this.copyToClipboard(this.value)\n .then(() => {\n this.hint = 'Text copied to clipboard';\n })\n .catch((err) => {\n this.validationError = 'Failed to copy text to clipboard';\n });\n }\n\n onInput(event: Event) {\n const input = event.target as HTMLInputElement;\n const raw = input.value.replace(/,/g, ''); // remove commas\n this.value = raw;\n this.formattedValue = this.isAmountInput ? formatAmount(this.value) : this.value;\n\n this.onChange(this.value);\n this.onInputChange.emit(this.value);\n\n // Set caret to end (to prevent jumping when formatting)\n setTimeout(() => {\n const el = event.target as HTMLInputElement;\n el.selectionStart = el.selectionEnd = el.value.length;\n });\n }\n\n onBlur(): void {\n this.onTouched();\n this.onInputBlur.emit(this.value);\n }\n\n writeValue(val: any): void {\n this.value = val || '';\n this.formattedValue = this.isAmountInput ? formatAmount(this.value) : this.value;\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (this.rules.includes('numeric')) {\n restrictToNumericKeys(event);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"flex flex-col gap-2\">\n @if (label) {\n <p class=\"mb-0 text-body-2xs font-normal text-heading-text\">\n {{ label }}\n @if (required) {\n <span class=\"text-orange-required\">*</span>\n }\n </p>\n }\n\n <div\n class=\"border-c px-3 py-2 flex items-center justify-between rounded-md h-12\"\n [ngClass]=\"[\n disabled ? 'bg-grey-50 cursor-not-allowed' : 'bg-white',\n validationError ? 'border-red-300 bg-red-50' : 'border-grey-100',\n ]\"\n >\n <ng-content select=\"[slot=prefix]\"></ng-content>\n <input\n [type]=\"type\"\n [value]=\"formattedValue\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? placeholder : 'Enter ' + label.toLowerCase()\"\n inputmode=\"decimal\"\n class=\"search-input bg-transparent outline-none border-none focus:outline-none focus:ring-0 text-body-2xs text-light-copy font-normal w-full\"\n />\n\n @if (!loading) {\n <ng-container>\n <ng-content select=\"[slot=suffix]\"></ng-content>\n <!-- Copy icon -->\n @if (showCopyIcon && value && value.trim() !== '') {\n <div class=\"ml-2 flex items-center\">\n <base-image\n src=\"assets/images/copyIcon.svg\"\n alt=\"copy\"\n [width]=\"16\"\n [height]=\"16\"\n class=\"cursor-pointer hover:opacity-70 transition-opacity\"\n (onClick)=\"copyHandler()\"\n ></base-image>\n </div>\n }\n </ng-container>\n } @else {\n <ng-template>\n <icon-loader></icon-loader>\n </ng-template>\n }\n </div>\n @if (hint) {\n <base-hint [hint]=\"hint\"></base-hint>\n }\n @if (validationError) {\n <base-input-error [errorMessage]=\"validationError\"></base-input-error>\n }\n</div>\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n ElementRef,\n HostListener,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ISelectOption } from '../../../types';\nimport { CommonModule } from '@angular/common';\nimport { IconChevronDownComponent, IconChevronUpComponent, IconLoaderComponent } from '../../icons';\nimport { HintComponent } from '../hint/hint.component';\nimport { InputErrorComponent } from '../input-error/input-error.component';\nimport { ImageComponent } from '../image/image.component';\n\n@Component({\n selector: 'base-select',\n standalone: true,\n templateUrl: './select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n IconLoaderComponent,\n IconChevronUpComponent,\n IconChevronDownComponent,\n HintComponent,\n InputErrorComponent,\n ImageComponent,\n ],\n})\nexport class SelectComponent implements ControlValueAccessor {\n @Input() set options(value: ISelectOption[]) {\n this._options = value || [];\n this.filteredOptions = [...this._options];\n this.syncSelectedFromValue(this._value);\n }\n get options() {\n return this._options;\n }\n private _options: ISelectOption[] = [];\n filteredOptions: ISelectOption[] = [];\n\n @Input() placeholder: string = 'Select an option';\n @Input() hasSearch: boolean = true;\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() validationError: string = '';\n @Input() label: string = '';\n @Input() hint: string = '';\n @Input() required: boolean = false;\n @Input() itemImageType: 'country' | 'bank' | null = null;\n\n @Output() onSelectChange = new EventEmitter<string>();\n\n @ViewChild('triggerRef', { static: false }) triggerRef!: ElementRef<HTMLElement>;\n @ViewChild('menuRef', { static: false }) menuRef!: ElementRef<HTMLElement>;\n @ViewChild('searchRef', { static: false }) searchRef!: ElementRef<HTMLInputElement>;\n\n selectedOption: ISelectOption | null = null;\n _value: string = '';\n\n // dropdown state\n isOpen = false;\n activeIndex: number = -1; // for keyboard navigation\n\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n // ==== CVA ====\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n writeValue(value: any): void {\n this._value = value;\n this.syncSelectedFromValue(value);\n this.filteredOptions = [...this.options];\n }\n\n private syncSelectedFromValue(value: string) {\n this.selectedOption = this.options.find((o) => o.value === value) || null;\n }\n\n // ==== Selection ====\n onSelect(value: string): void {\n if (this.disabled) return;\n this._value = value;\n this.selectedOption = this.options.find((o) => o.value === value) || null;\n this.filteredOptions = [...this.options];\n this.onChange(value);\n this.onTouched();\n this.onSelectChange.emit(value);\n this.close();\n }\n\n // ==== Search ====\n onInput(event: Event) {\n const input = (event.target as HTMLInputElement).value.toLowerCase();\n this.filteredOptions = this.options.filter((option) =>\n option.label.toLowerCase().includes(input),\n );\n this.activeIndex = this.filteredOptions.length ? 0 : -1;\n }\n\n // ==== Bank logo ====\n bankLogoHandler(bankCode: string): string {\n // return bankLogoMapping?.[bankCode];\n return '';\n }\n\n // ==== Dropdown controls ====\n toggle(): void {\n if (this.disabled) return;\n this.isOpen ? this.close() : this.open();\n }\n\n open(): void {\n if (this.disabled || this.isOpen) return;\n this.isOpen = true;\n // reset search & list to current options when opening\n this.filteredOptions = [...this.options];\n this.activeIndex = this.selectedOption\n ? Math.max(\n 0,\n this.filteredOptions.findIndex((o) => o.value === this.selectedOption!.value),\n )\n : 0;\n\n // focus search input if present\n setTimeout(() => {\n if (this.hasSearch && this.searchRef?.nativeElement) {\n this.searchRef.nativeElement.focus();\n this.searchRef.nativeElement.select();\n }\n });\n }\n\n close(): void {\n if (!this.isOpen) return;\n this.isOpen = false;\n this.activeIndex = -1;\n }\n\n // Close on outside click\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (!this.isOpen) return;\n const target = event.target as Node;\n const triggerEl = this.triggerRef?.nativeElement;\n const menuEl = this.menuRef?.nativeElement;\n if (triggerEl && !triggerEl.contains(target) && menuEl && !menuEl.contains(target)) {\n this.close();\n }\n }\n\n // ==== Keyboard support on trigger ====\n onTriggerKeydown(event: KeyboardEvent) {\n if (this.disabled) return;\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'Spacebar':\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) this.open();\n else this.moveActive(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isOpen) this.open();\n else this.moveActive(-1);\n break;\n case 'Escape':\n if (this.isOpen) {\n event.preventDefault();\n this.close();\n }\n break;\n }\n }\n\n // ==== Keyboard support inside menu ====\n onMenuKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveActive(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveActive(-1);\n break;\n case 'Home':\n event.preventDefault();\n this.activeIndex = this.filteredOptions.length ? 0 : -1;\n this.scrollActiveIntoView();\n break;\n case 'End':\n event.preventDefault();\n this.activeIndex = this.filteredOptions.length - 1;\n this.scrollActiveIntoView();\n break;\n case 'Enter':\n event.preventDefault();\n if (this.activeIndex >= 0) {\n const opt = this.filteredOptions[this.activeIndex];\n if (opt) this.onSelect(opt.value);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.close();\n break;\n case 'Tab':\n // allow normal tab flow but close the menu\n this.close();\n break;\n }\n }\n\n private moveActive(delta: number) {\n if (!this.filteredOptions.length) return;\n const max = this.filteredOptions.length - 1;\n const next = this.activeIndex < 0 ? 0 : Math.min(max, Math.max(0, this.activeIndex + delta));\n this.activeIndex = next;\n this.scrollActiveIntoView();\n }\n\n private scrollActiveIntoView() {\n const menu = this.menuRef?.nativeElement;\n if (!menu) return;\n const items = menu.querySelectorAll<HTMLElement>('[data-option]');\n if (this.activeIndex >= 0 && this.activeIndex < items.length) {\n const el = items[this.activeIndex];\n el?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n // For a11y labelling\n get displayText(): string {\n return this.selectedOption?.label || this.placeholder || `Select ${this.label}`;\n }\n}\n","<div class=\"flex flex-col gap-2 relative\">\n @if (label) {\n <p class=\"mb-0 text-body-2xs font-normal text-heading-text\">\n {{ label }}\n @if (required) {\n <span class=\"text-orange-required\">*</span>\n }\n </p>\n }\n\n <!-- Trigger -->\n <div\n #triggerRef\n class=\"border-c rounded-md flex items-center justify-between h-12 cursor-pointer px-3 py-2\"\n [ngClass]=\"[\n disabled ? 'bg-grey-100 cursor-not-allowed' : 'bg-white',\n validationError ? 'border-red-300 bg-red-50' : 'border-grey-100 bg-white',\n ]\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"isOpen ? 'select-menu' : null\"\n [attr.aria-disabled]=\"disabled || null\"\n [attr.aria-activedescendant]=\"isOpen && activeIndex >= 0 ? 'option-' + activeIndex : null\"\n tabindex=\"0\"\n (click)=\"toggle()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n <div class=\"flex items-center gap-2\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n <div class=\"flex items-center gap-2\">\n @if (selectedOption && itemImageType === 'country') {\n <base-image\n [src]=\"'https://flagcdn.com/w40/' + selectedOption.countryCode?.toLowerCase() + '.png'\"\n [alt]=\"selectedOption.countryCode\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image>\n }\n\n @if (selectedOption && itemImageType === 'bank') {\n <!-- <base-image\n [src]=\"bankLogoHandler(selectedOption?.['bankCode'] || selectedOption?.value)\"\n [alt]=\"selectedOption?.value\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image> -->\n }\n\n <p\n class=\"text-body-2xs font-normal mb-0\"\n [ngClass]=\"[selectedOption?.label ? 'text-sub-copy' : 'text-grey-500']\"\n >\n {{ displayText }}\n </p>\n </div>\n </div>\n\n @if (loading) {\n <icon-loader></icon-loader>\n } @else {\n @if (isOpen) {\n <icon-chevron-up width=\"20\" height=\"20\" color=\"#8FAECA\"></icon-chevron-up>\n } @else {\n <icon-chevron-down width=\"20\" height=\"20\" color=\"#8FAECA\"></icon-chevron-down>\n }\n }\n </div>\n\n <!-- Menu -->\n @if (isOpen) {\n <div\n #menuRef\n id=\"select-menu\"\n class=\"border-c bg-white rounded-md border-grey-border text-body-xs font-normal text-input-grey w-full mt-2 max-h-22rem overflow-y-auto\"\n role=\"listbox\"\n [attr.aria-label]=\"label || 'Options'\"\n style=\"position: absolute; top: 100%; z-index: 10;\"\n (keydown)=\"onMenuKeydown($event)\"\n >\n @if (hasSearch) {\n <div class=\"px-4 pt-2 pb-1\">\n <input\n #searchRef\n type=\"text\"\n (input)=\"onInput($event)\"\n [placeholder]=\"'Search ' + label\"\n class=\"bg-transparent outline-none border-b pb-2 w-full focus:outline-none focus:ring-0 text-body-2xs text-light-copy font-normal\"\n />\n </div>\n }\n\n <div\n class=\"px-4 py-3 first:pt-0 hover:bg-gray-100 flex items-center gap-2 cursor-pointer\"\n *ngFor=\"let option of filteredOptions; let i = index\"\n (click)=\"onSelect(option.value)\"\n [attr.id]=\"'option-' + i\"\n data-option\n role=\"option\"\n [attr.aria-selected]=\"selectedOption?.value === option.value\"\n [ngClass]=\"{ 'bg-gray-100': i === activeIndex }\"\n >\n @if (itemImageType === 'country') {\n <base-image\n [src]=\"'https://flagcdn.com/w40/' + (option.countryCode || '').toLowerCase() + '.png'\"\n [alt]=\"option.countryCode\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image>\n }\n\n @if (itemImageType === 'bank') {\n <!-- <base-image\n [src]=\"bankLogoHandler(option['bankCode'] || option.value)\"\n [alt]=\"option.value\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image> -->\n }\n\n <p class=\"mb-0 text-body-2xs font-medium\">\n {{ option.label }}\n </p>\n </div>\n </div>\n }\n\n @if (hint) {\n <base-hint [hint]=\"hint\"></base-hint>\n }\n @if (validationError) {\n <base-input-error [errorMessage]=\"validationError\"></base-input-error>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'base-radio-group',\n standalone: true,\n templateUrl: './radio-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class RadioGroupComponent implements OnInit {\n selected: string = '';\n\n @Input() options: { label: string; value: string }[] = [];\n @Input() type: 'vertical' | 'horizontal' = 'vertical';\n @Output() selectedChange = new EventEmitter<any>();\n\n onSelect(value: any) {\n this.selected = value;\n this.selectedChange.emit(this.selected);\n }\n\n ngOnInit(): void {\n this.selected = this.options.length > 0 ? this.options[0].value : '';\n this.selectedChange.emit(this.selected);\n }\n}\n","<div\n class=\"flex flex-col\"\n [ngClass]=\"{\n 'flex-row gap-5': type === 'horizontal',\n 'flex-col gap-6': type === 'vertical',\n }\"\n>\n <div\n *ngFor=\"let option of options\"\n (click)=\"onSelect(option.value)\"\n class=\"flex items-center gap-2 cursor-pointer transition-colors duration-200\"\n >\n <div\n class=\"w-4 h-4 rounded-full border flex items-center justify-center\"\n [ngClass]=\"{\n 'bg-orange-500 border-orange-500': selected === option.value,\n 'bg-white border-grey-200': selected !== option.value,\n }\"\n >\n @if (selected === option.value) {\n <div class=\"bg-white w-2 h-2 rounded-full\"></div>\n }\n </div>\n <p class=\"mb-0 text-body-2xs font-medium text-heading-text\">\n {{ option.label }}\n </p>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconCopySuccessComponent } from '../../icons';\n\n@Component({\n selector: 'base-copy',\n standalone: true,\n templateUrl: './copy.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconCopySuccessComponent],\n})\nexport class CopyComponent {\n @Input() copyText: string = '';\n @Input() color: string = '';\n\n copyToClipboard(text: string): Promise<void> {\n return navigator.clipboard.writeText(text);\n }\n\n copyHandler(): void {\n this.copyToClipboard(this.copyText)\n .then(() => {})\n .catch((err) => {});\n }\n}\n","<icon-copy-success\n class=\"cursor-pointer\"\n [color]=\"color\"\n (click)=\"copyHandler()\"\n></icon-copy-success>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CopyComponent } from '../copy/copy.component';\nimport { ImageComponent } from '../image/image.component';\nimport { truncateString } from '../../../utils';\n\n@Component({\n selector: 'base-label-info',\n standalone: true,\n templateUrl: './label-info.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, CopyComponent, ImageComponent],\n})\nexport class LabelInfoComponent {\n @Input() type: 'vertical' | 'horizontal' = 'vertical';\n @Input() label: string = '';\n @Input() labelCustomClass: string = 'text-body-4xs font-medium text-light-copy';\n @Input() valueImageSrc: string = '';\n @Input() valueImageCustomClass: string = '';\n @Input() valueImagePosition: 'prefix' | 'suffix' = 'prefix';\n @Input() hasValueCopy: boolean = false;\n @Input() value: string = '';\n @Input() valueCustomClass: string = 'text-body-2xs font-medium text-sub-copy';\n @Input() alignRight: boolean = false;\n\n truncateStringHandler(str: string, num: number): string {\n return truncateString(str, num);\n }\n}\n","@if (type === 'vertical') {\n <div class=\"flex flex-col gap-1\" [ngClass]=\"{ 'text-right items-end': alignRight }\">\n <p [ngClass]=\"labelCustomClass\">{{ label.toUpperCase() }}</p>\n <div class=\"flex items-center gap-1\">\n @if (valueImageSrc && valueImagePosition === 'prefix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n\n @if (!hasValueCopy) {\n <p [ngClass]=\"valueCustomClass\">\n {{ value }}\n </p>\n } @else {\n <p [ngClass]=\"valueCustomClass\" class=\"truncate\">\n {{ truncateStringHandler(value, 40) }}\n </p>\n }\n\n @if (hasValueCopy) {\n <base-copy [copyText]=\"value\" color=\"#9DBFDE\"></base-copy>\n }\n\n @if (valueImageSrc && valueImagePosition === 'suffix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n </div>\n </div>\n} @else {\n <div class=\"flex items-center justify-between\">\n <p [ngClass]=\"labelCustomClass\">{{ label.toUpperCase() }}</p>\n <div class=\"flex items-center gap-1\">\n @if (valueImageSrc && valueImagePosition === 'prefix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n <p [ngClass]=\"valueCustomClass\">\n {{ value }}\n </p>\n\n @if (hasValueCopy) {\n <base-copy [copyText]=\"value\" color=\"#9DBFDE\"></base-copy>\n }\n\n @if (valueImageSrc && valueImagePosition === 'suffix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n </div>\n </div>\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { LabelInfoComponent } from '../label-info/label-info.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconCheckCircleComponent } from '../../icons';\n\n@Component({\n selector: 'base-success',\n standalone: true,\n templateUrl: './success.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelInfoComponent, ButtonComponent, IconCheckCircleComponent],\n})\nexport class SuccessComponent {}\n","<div class=\"flex flex-col gap-8 p-16\">\n <div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col gap-8\">\n <icon-check-circle color=\"#F47A1F\" class=\"mx-auto\"></icon-check-circle>\n <div class=\"flex flex-col text-center\" style=\"gap: 2px\">\n <p class=\"text-heading-text font-medium text-header-2xl\">₦2,500.00</p>\n <p class=\"text-sub-copy font-regular text-body-3xs\">Has been paid successfully</p>\n </div>\n </div>\n\n <div class=\"flex flex-col\">\n <div class=\"py-4 border-b border-grey-100\">\n <base-label-info\n type=\"horizontal\"\n label=\"Order ID\"\n value=\"9900009000-8890-8829hd7\"\n ></base-label-info>\n </div>\n <div class=\"py-4\">\n <base-label-info\n type=\"horizontal\"\n label=\"Payment date\"\n value=\"July 24, 2025\"\n ></base-label-info>\n </div>\n </div>\n </div>\n\n <div class=\"mx-auto\" style=\"width: 80%;\">\n <base-button\n label=\"Return to Merchant Website\"\n type=\"secondary\"\n customClass=\"w-full\"\n ></base-button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\nimport { IconChevronLeftComponent } from '../../icons';\n\n@Component({\n selector: 'base-back',\n standalone: true,\n templateUrl: './back.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconChevronLeftComponent],\n})\nexport class BackComponent {\n @Output() back = new EventEmitter<void>();\n\n goBack(): void {\n this.back.emit();\n }\n}\n","<div class=\"flex items-center gap-2 cursor-pointer\" (click)=\"goBack()\">\n <icon-chevron-left></icon-chevron-left>\n <p class=\"mb-0 text-body-xs font-normal\">Back</p>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconBuzapayIconComponent } from '../../icons';\nimport { BackComponent } from '../back/back.component';\n\n@Component({\n selector: 'base-card',\n standalone: true,\n templateUrl: './card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconBuzapayIconComponent, BackComponent],\n})\nexport class CardComponent {\n @Input() showBackButton: boolean = false;\n @Output() back = new EventEmitter<void>();\n\n goBack(): void {\n this.back.emit();\n }\n}\n","<div class=\"checkout-card w-full h-screen flex flex-col items-center justify-center text-white\">\n <div class=\"flex w-1/2\">\n @if (showBackButton) {\n <base-back (back)=\"goBack()\"></base-back>\n }\n\n <div class=\"flex gap-2 w-full\">\n <div class=\"flex flex-col gap-8 w-full\">\n <div class=\"bg-off-white rounded-xl\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"flex items-center gap-2 justify-center\">\n <p class=\"text-light-white-100 text-body-2xs font-regular\">Powered by Buzapay</p>\n <icon-buzapay-icon color=\"#E8F4FF\"></icon-buzapay-icon>\n </div>\n </div>\n\n <!-- Close Icon -->\n <div\n class=\"close-icon flex flex-col items-center justify-center self-start cursor-pointer hover:bg-gray-500\"\n >\n <p class=\"text-white\">x</p>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { formatAmount } from '../../../utils/string.util';\nimport { CommonModule } from '@angular/common';\nimport { IconUsdcComponent, IconUsdtComponent } from '../../icons';\n\n@Component({\n selector: 'base-currency-amount',\n standalone: true,\n templateUrl: './currency-amount.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, IconUsdcComponent, IconUsdtComponent],\n})\nexport class CurrencyAmountComponent {\n @Input() currency: string = '';\n @Input() amount: number | string = 0;\n @Input() textClass: string = '';\n @Input() iconColorClass: string = '';\n @Input() iconWidth: string = '16';\n @Input() iconHeight: string = '16';\n\n formatAmountHandler(amount: number | string, currency?: string): string {\n return formatAmount(amount, currency);\n }\n}\n","@if (currency.toUpperCase() !== 'USDT' && currency.toUpperCase() !== 'USDC') {\n <p [ngClass]=\"textClass\">\n {{ formatAmountHandler(amount, currency.toUpperCase()) }}\n </p>\n}\n\n@if (currency.toUpperCase() === 'USDT' || currency.toUpperCase() === 'USDC') {\n <div class=\"flex items-center gap-1\">\n @if (currency.toUpperCase() === 'USDT') {\n <icon-usdt [width]=\"iconWidth\" [height]=\"iconHeight\" [color]=\"iconColorClass\"></icon-usdt>\n }\n\n @if (currency.toUpperCase() === 'USDC') {\n <icon-usdc [width]=\"iconWidth\" [height]=\"iconHeight\" [color]=\"iconColorClass\"></icon-usdc>\n }\n <p [ngClass]=\"textClass\">\n {{ formatAmountHandler(amount) }}\n </p>\n </div>\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IApiResponse, IPaymentObject } from '../models';\nimport { getBaseUrl } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CheckoutService {\n constructor(private http: HttpClient) {}\n\n createPaymentLink(\n payload: IPaymentObject,\n environment: string,\n secretKey: string,\n ): Observable<IApiResponse<any>> {\n const baseUrl = getBaseUrl(environment);\n return this.http.post<IApiResponse<any>>(\n `${baseUrl}/api/v1/checkout/generate-payment-link2`,\n { ...payload, linkName: `${Date.now()}-link` },\n {\n headers: {\n merchantId: secretKey,\n },\n },\n );\n }\n}\n","/*\n * Public API Surface of miden-pg-angular\n */\n\nexport * from './lib/miden-pg-angular';\nexport * from './lib/types';\nexport * from './lib/tokens';\nexport * from './lib/providers';\nexport * from './lib/components/index';\nexport * from './lib/models/index';\nexport * from './lib/services/checkout.service';\nexport * from './lib/utils/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"miden-npm-angular.mjs","sources":["../../src/lib/miden-pg-angular.ts","../../src/lib/tokens.ts","../../src/lib/interceptors/auth.interceptor.ts","../../src/lib/interceptors/idempotency.interceptor.ts","../../src/lib/providers.ts","../../src/lib/components/icons/icon-loader/icon-loader.component.ts","../../src/lib/components/icons/icon-loader/icon-loader.component.html","../../src/lib/components/icons/icon-chevron-up/icon-chevron-up.component.ts","../../src/lib/components/icons/icon-chevron-up/icon-chevron-up.component.html","../../src/lib/components/icons/icon-chevron-down/icon-chevron-down.component.ts","../../src/lib/components/icons/icon-chevron-down/icon-chevron-down.component.html","../../src/lib/components/icons/icon-buzapay-icon/icon-buzapay-icon.component.ts","../../src/lib/components/icons/icon-buzapay-icon/icon-buzapay-icon.component.html","../../src/lib/components/icons/icon-copy-success/icon-copy-success.component.ts","../../src/lib/components/icons/icon-copy-success/icon-copy-success.component.html","../../src/lib/components/icons/icon-check-circle/icon-check-circle.component.ts","../../src/lib/components/icons/icon-check-circle/icon-check-circle.component.html","../../src/lib/components/icons/icon-chevron-left/icon-chevron-left.component.ts","../../src/lib/components/icons/icon-chevron-left/icon-chevron-left.component.html","../../src/lib/components/icons/icon-usdc/icon-usdc.component.ts","../../src/lib/components/icons/icon-usdc/icon-usdc.component.html","../../src/lib/components/icons/icon-usdt/icon-usdt.component.ts","../../src/lib/components/icons/icon-usdt/icon-usdt.component.html","../../src/lib/components/icons/icon-arrow-swap/icon-arrow-swap.component.ts","../../src/lib/components/icons/icon-arrow-swap/icon-arrow-swap.component.html","../../src/lib/components/base/button/button.component.ts","../../src/lib/components/base/button/button.component.html","../../src/lib/components/base/hint/hint.component.ts","../../src/lib/components/base/hint/hint.component.html","../../src/lib/components/base/input-error/input-error.component.ts","../../src/lib/components/base/input-error/input-error.component.html","../../src/lib/components/base/image/image.component.ts","../../src/lib/components/base/image/image.component.html","../../src/lib/utils/api.util.ts","../../src/lib/utils/input.util.ts","../../src/lib/utils/object.util.ts","../../src/lib/utils/string.util.ts","../../src/lib/components/base/input/input.component.ts","../../src/lib/components/base/input/input.component.html","../../src/lib/components/base/select/select.component.ts","../../src/lib/components/base/select/select.component.html","../../src/lib/components/base/radio-group/radio-group.component.ts","../../src/lib/components/base/radio-group/radio-group.component.html","../../src/lib/components/base/copy/copy.component.ts","../../src/lib/components/base/copy/copy.component.html","../../src/lib/components/base/label-info/label-info.component.ts","../../src/lib/components/base/label-info/label-info.component.html","../../src/lib/components/base/success/success.component.ts","../../src/lib/components/base/success/success.component.html","../../src/lib/components/base/back/back.component.ts","../../src/lib/components/base/back/back.component.html","../../src/lib/components/base/card/card.component.ts","../../src/lib/components/base/card/card.component.html","../../src/lib/components/base/currency-amount/currency-amount.component.ts","../../src/lib/components/base/currency-amount/currency-amount.component.html","../../src/lib/services/checkout.service.ts","../../src/public-api.ts","../../src/miden-npm-angular.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'miden-pg-angular',\n imports: [],\n template: ` <p>miden-pg-angular works!</p> `,\n styles: ``,\n})\nexport class MidenPGAngular {}\n","import { InjectionToken } from '@angular/core';\nimport { BzpConfig } from './types';\n\nexport const BZP_CONFIG = new InjectionToken<BzpConfig>('BZP_CONFIG');\nexport const BZP_CORRELATION_ID = new InjectionToken<string>('BZP_CORRELATION_ID');\n","import { HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { BZP_CONFIG } from '../tokens';\n\nexport const authInterceptor: HttpInterceptorFn = (req, next) => {\n const cfg = inject(BZP_CONFIG);\n const cloned = req.clone({\n setHeaders: {\n 'X-Publishable-Key': cfg.publishableKey,\n },\n });\n return next(cloned);\n};\n","import { HttpInterceptorFn } from '@angular/common/http';\n\nfunction generateIdempotencyKey(): string {\n // Simple RFC4122-ish v4 key; replace with a stronger util if needed\n return (\n 'gw_' +\n crypto\n .getRandomValues(new Uint8Array(16))\n .reduce((a, b) => a + b.toString(16).padStart(2, '0'), '')\n );\n}\n\nexport const idempotencyInterceptor: HttpInterceptorFn = (req, next) => {\n if (req.method === 'POST' || req.method === 'PUT' || req.method === 'PATCH') {\n const key = req.headers.get('Idempotency-Key') || generateIdempotencyKey();\n req = req.clone({ setHeaders: { 'Idempotency-Key': key } });\n }\n return next(req);\n};\n","import { EnvironmentProviders, makeEnvironmentProviders, inject } from '@angular/core';\nimport { provideHttpClient, withInterceptors } from '@angular/common/http';\nimport { BZP_CONFIG } from './tokens';\nimport { BzpConfig } from './types';\nimport { authInterceptor } from './interceptors/auth.interceptor';\nimport { idempotencyInterceptor } from './interceptors/idempotency.interceptor';\n\nexport function provideMidenPG(config: BzpConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n { provide: BZP_CONFIG, useValue: config },\n provideHttpClient(withInterceptors([authInterceptor, idempotencyInterceptor])),\n ]);\n}\n\n// Example helper to access base URL from config without directly injecting tokens in apps\nexport function apiBaseUrl(): string {\n const cfg = inject(BZP_CONFIG);\n return cfg.environment.apiBaseUrl;\n}\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-loader',\n templateUrl: './icon-loader.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconLoaderComponent {\n @Input() color: string = 'currentColor';\n @Input() size: string = '20';\n}\n","<svg\n class=\"animate-spin\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n [attr.width]=\"size\"\n [attr.height]=\"size\"\n>\n <circle class=\"opacity-25\" cx=\"12\" cy=\"12\" r=\"10\" [attr.stroke]=\"color\" stroke-width=\"4\"></circle>\n <path\n class=\"opacity-75\"\n [attr.fill]=\"color\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z\"\n ></path>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-chevron-up',\n standalone: true,\n templateUrl: './icon-chevron-up.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconChevronUpComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '24';\n @Input() height: string = '24';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g opacity=\"0.7\">\n <path\n d=\"M2.73508 9.73495L7.73508 4.73495C7.80539 4.66473 7.9007 4.62528 8.00008 4.62528C8.09945 4.62528 8.19476 4.66473 8.26508 4.73495L13.2651 9.73495C13.3313 9.80604 13.3674 9.90006 13.3657 9.99722C13.364 10.0944 13.3246 10.1871 13.2559 10.2558C13.1872 10.3245 13.0945 10.3638 12.9973 10.3655C12.9002 10.3673 12.8062 10.3312 12.7351 10.265L8.00008 5.53058L3.26508 10.265C3.19399 10.3312 3.09997 10.3673 3.00282 10.3655C2.90566 10.3638 2.81297 10.3245 2.74427 10.2558C2.67556 10.1871 2.6362 10.0944 2.63449 9.99722C2.63277 9.90006 2.66884 9.80604 2.73508 9.73495Z\"\n [attr.fill]=\"color\"\n />\n </g>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-chevron-down',\n standalone: true,\n templateUrl: './icon-chevron-down.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconChevronDownComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '24';\n @Input() height: string = '24';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g opacity=\"0.6\">\n <path\n d=\"M16.5813 7.83128L10.3313 14.0813C10.2434 14.1691 10.1242 14.2184 10 14.2184C9.87581 14.2184 9.75667 14.1691 9.66878 14.0813L3.41878 7.83128C3.33598 7.74242 3.2909 7.62489 3.29304 7.50345C3.29518 7.38201 3.34438 7.26615 3.43026 7.18026C3.51615 7.09438 3.63201 7.04518 3.75345 7.04304C3.87489 7.0409 3.99242 7.08598 4.08128 7.16878L10 13.0867L15.9188 7.16878C16.0076 7.08598 16.1252 7.0409 16.2466 7.04304C16.368 7.04518 16.4839 7.09438 16.5698 7.18026C16.6557 7.26615 16.7049 7.38201 16.707 7.50345C16.7092 7.62489 16.6641 7.74242 16.5813 7.83128Z\"\n [attr.fill]=\"color\"\n />\n </g>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-buzapay-icon',\n standalone: true,\n templateUrl: './icon-buzapay-icon.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconBuzapayIconComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '15';\n @Input() height: string = '13';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 15 13\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M9.97919 0.5C10.8854 0.5 11.6276 0.585938 12.2057 0.757812C12.7891 0.924479 13.2188 1.22396 13.4948 1.65625C13.7761 2.08333 13.9167 2.6901 13.9167 3.47656C13.9167 4.1849 13.7526 4.77083 13.4245 5.23438C13.0964 5.69792 12.5938 5.95312 11.9167 6C12.8021 6.08854 13.4401 6.40625 13.8307 6.95312C14.2214 7.49479 14.4167 8.17708 14.4167 9C14.4167 9.71354 14.3334 10.2995 14.1667 10.7578C14.0052 11.2161 13.7318 11.5729 13.3464 11.8281C12.961 12.0781 12.4375 12.2526 11.7761 12.3516C11.1198 12.4505 10.2995 12.5 9.31512 12.5H0.416687V0.5H9.97919ZM2.91669 7.77344H5.97235V11.167L10.2497 5.22754H7.19501V1.83398L2.91669 7.77344ZM5.97235 6.07617H8.2702L7.19501 7.57324V6.9248H4.89716L5.97235 5.42676V6.07617Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-copy-success',\n standalone: true,\n templateUrl: './icon-copy-success.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconCopySuccessComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '16';\n @Input() height: string = '17';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M11.4002 1.6875H8.60016C5.9935 1.6875 4.8335 2.8475 4.8335 5.45417V6.1875C4.8335 6.46083 5.06016 6.6875 5.3335 6.6875H7.40016C9.46683 6.6875 10.1668 7.3875 10.1668 9.45417V11.5208C10.1668 11.7942 10.3935 12.0208 10.6668 12.0208H11.4002C14.0068 12.0208 15.1668 10.8608 15.1668 8.25417V5.45417C15.1668 2.8475 14.0068 1.6875 11.4002 1.6875ZM5.8335 5.6875V5.45417C5.8335 3.3875 6.5335 2.6875 8.60016 2.6875H11.4002C13.4668 2.6875 14.1668 3.3875 14.1668 5.45417V8.25417C14.1668 10.3208 13.4668 11.0208 11.4002 11.0208H11.1668V9.45417C11.1668 6.8475 10.0068 5.6875 7.40016 5.6875H5.8335Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M7.40016 5.6875H4.60016C1.9935 5.6875 0.833496 6.8475 0.833496 9.45417V12.2542C0.833496 14.8608 1.9935 16.0208 4.60016 16.0208H7.40016C10.0068 16.0208 11.1668 14.8608 11.1668 12.2542V9.45417C11.1668 6.8475 10.0068 5.6875 7.40016 5.6875ZM4.60016 15.0208C2.5335 15.0208 1.8335 14.3208 1.8335 12.2542V9.45417C1.8335 7.3875 2.5335 6.6875 4.60016 6.6875H7.40016C9.46683 6.6875 10.1668 7.3875 10.1668 9.45417V12.2542C10.1668 14.3208 9.46683 15.0208 7.40016 15.0208H4.60016Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M5.35302 12.6542C5.22635 12.6542 5.09969 12.6075 4.99969 12.5075L3.69969 11.2075C3.50635 11.0142 3.50635 10.6942 3.69969 10.5008C3.89302 10.3075 4.21302 10.3075 4.40635 10.5008L5.35302 11.4475L7.59302 9.2075C7.78635 9.01417 8.10635 9.01417 8.29969 9.2075C8.49302 9.40083 8.49302 9.72083 8.29969 9.91417L5.69969 12.5075C5.60635 12.6008 5.47969 12.6542 5.35302 12.6542Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-check-circle',\n standalone: true,\n templateUrl: './icon-check-circle.component.html',\n})\nexport class IconCheckCircleComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '67';\n @Input() height: string = '67';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 67 67\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M33.6705 0.0820312C15.2758 0.0820312 0.36377 14.9941 0.36377 33.3888C0.36377 51.7846 15.2758 66.6956 33.6705 66.6956C52.0663 66.6956 66.9773 51.7846 66.9773 33.3888C66.9773 14.9941 52.0663 0.0820312 33.6705 0.0820312ZM33.6705 62.5978C17.6011 62.5978 4.52712 49.4583 4.52712 33.3887C4.52712 17.3192 17.6011 4.24525 33.6705 4.24525C49.74 4.24525 62.814 17.3193 62.814 33.3887C62.814 49.4581 49.74 62.5978 33.6705 62.5978ZM46.9631 21.2016L27.4213 40.8662L18.621 32.0659C17.8081 31.253 16.4904 31.253 15.6765 32.0659C14.8636 32.8788 14.8636 34.1965 15.6765 35.0094L25.9797 45.3137C26.7926 46.1255 28.1103 46.1255 28.9243 45.3137C29.0179 45.22 29.0981 45.1179 29.171 45.0118L49.9086 24.1461C50.7205 23.3332 50.7205 22.0155 49.9086 21.2016C49.0947 20.3888 47.777 20.3888 46.9631 21.2016Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-chevron-left',\n standalone: true,\n templateUrl: './icon-chevron-left.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconChevronLeftComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '17';\n @Input() height: string = '17';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 17 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M10.5 14.28C10.3734 14.28 10.2467 14.2333 10.1467 14.1333L5.80002 9.78668C5.09335 9.08001 5.09335 7.92001 5.80002 7.21335L10.1467 2.86668C10.34 2.67335 10.66 2.67335 10.8534 2.86668C11.0467 3.06001 11.0467 3.38001 10.8534 3.57335L6.50669 7.92001C6.18669 8.24001 6.18669 8.76001 6.50669 9.08001L10.8534 13.4267C11.0467 13.62 11.0467 13.94 10.8534 14.1333C10.7534 14.2267 10.6267 14.28 10.5 14.28Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-usdc',\n standalone: true,\n templateUrl: './icon-usdc.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconUsdcComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '28';\n @Input() height: string = '28';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g clip-path=\"url(#clip0_10908_387048)\">\n <path\n d=\"M14 0C21.7324 0 28 6.26763 28 14C28 21.7324 21.7324 28 14 28C6.26763 28 0 21.7324 0 14C0 6.26763 6.26763 0 14 0ZM16.933 4.865C16.7195 4.76 16.506 4.865 16.4535 5.07762C16.4001 5.131 16.4001 5.18438 16.4001 5.29025V6.034L16.4089 6.125C16.4546 6.30501 16.5652 6.46177 16.7195 6.56512C20.8792 8.05262 23.0125 12.6726 21.4655 16.7615C20.6657 18.9928 18.9061 20.6911 16.7195 21.4883C16.506 21.5941 16.4001 21.7534 16.4001 22.0194V22.7631L16.4045 22.8401C16.4128 22.9241 16.4479 23.0033 16.5047 23.0658C16.5614 23.1284 16.6367 23.171 16.7195 23.1875C16.7729 23.1875 16.8796 23.1875 16.933 23.135C18.1331 22.7602 19.2473 22.1517 20.2113 21.3446C21.1753 20.5375 21.9701 19.5476 22.5499 18.432C23.1298 17.3164 23.4833 16.0972 23.59 14.8444C23.6967 13.5917 23.5546 12.3302 23.1718 11.1326C22.2128 8.10512 19.866 5.8205 16.933 4.865ZM11.2805 4.8125C11.2271 4.8125 11.1204 4.8125 11.067 4.865C9.86688 5.23978 8.75274 5.84826 7.78874 6.6554C6.82475 7.46254 6.02993 8.4524 5.45006 9.56797C4.87019 10.6836 4.51673 11.9028 4.41001 13.1556C4.30329 14.4083 4.44543 15.6698 4.82825 16.8674C5.78725 19.8424 8.08062 22.1261 11.067 23.0816C11.2805 23.1875 11.494 23.0816 11.5465 22.869C11.5999 22.8165 11.5999 22.7622 11.5999 22.6564V21.9126L11.5911 21.8426C11.5544 21.6947 11.417 21.5259 11.2805 21.4349C7.12075 19.9474 4.9875 15.3274 6.5345 11.2385C7.33425 9.00725 9.09388 7.30887 11.2805 6.51175C11.494 6.40587 11.5999 6.24663 11.5999 5.98063V5.23688L11.5955 5.15987C11.5872 5.07585 11.5521 4.99673 11.4954 4.93418C11.4386 4.87163 11.3633 4.82898 11.2805 4.8125ZM14.3736 7.574H13.573L13.496 7.581C13.321 7.616 13.1933 7.7665 13.146 7.99925V9.22075L12.9649 9.24875C11.4704 9.51475 10.5341 10.5464 10.5341 11.823C10.5341 13.5748 11.5999 14.2651 13.8399 14.5311C15.3335 14.7963 15.813 15.1156 15.813 15.9653C15.813 16.814 15.0666 17.3985 14.0534 17.3985C12.6665 17.3985 12.187 16.8149 12.0269 16.0177C11.9744 15.806 11.8134 15.6992 11.6532 15.6992H10.7467L10.6776 15.7054C10.5913 15.7193 10.513 15.7641 10.4572 15.8313C10.4014 15.8985 10.3718 15.9838 10.374 16.0711V16.1236L10.4029 16.2811C10.6566 17.5271 11.5106 18.4187 13.2003 18.6734V19.9483L13.2072 20.0252C13.2422 20.1985 13.3936 20.3263 13.6273 20.3726H14.427L14.504 20.3656C14.679 20.3306 14.8067 20.1801 14.854 19.9483V18.6725L15.0351 18.6375C16.534 18.3207 17.5201 17.2366 17.5201 15.8576C17.5201 13.9991 16.4001 13.3621 14.1601 13.0961C12.5598 12.8835 12.2404 12.4591 12.2404 11.7154C12.2404 10.9716 12.7741 10.4939 13.8399 10.4939C14.7998 10.4939 15.3335 10.8124 15.5995 11.6095C15.6272 11.6866 15.6779 11.7533 15.7447 11.8007C15.8115 11.8481 15.8912 11.8739 15.9731 11.8746H16.8262L16.8954 11.8694C16.982 11.8556 17.0606 11.8108 17.1166 11.7434C17.1726 11.6759 17.2022 11.5904 17.1999 11.5027V11.4503L17.1675 11.2989C17.0361 10.755 16.7366 10.2664 16.3115 9.90255C15.8864 9.53872 15.3574 9.31821 14.7997 9.27238V7.99925L14.7928 7.92225C14.7578 7.74812 14.6073 7.62038 14.3736 7.574Z\"\n [attr.fill]=\"color\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10908_387048\">\n <rect width=\"28\" height=\"28\" [attr.fill]=\"color\" />\n </clipPath>\n </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-usdt',\n standalone: true,\n templateUrl: './icon-usdt.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconUsdtComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '28';\n @Input() height: string = '28';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 28 28\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <g clip-path=\"url(#clip0_10908_387045)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M14 28C6.26763 28 0 21.7324 0 14C0 6.26763 6.26763 0 14 0C21.7324 0 28 6.26763 28 14C28 21.7324 21.7324 28 14 28ZM15.6818 12.0689V9.99863H20.419V6.84162H7.52063V9.99863H12.2579V12.068C8.40787 12.2447 5.5125 13.0077 5.5125 13.9212C5.5125 14.8347 8.40787 15.5969 12.2579 15.7745V22.4088H15.6818V15.7727C19.5256 15.596 22.414 14.8339 22.414 13.9212C22.414 13.0086 19.5256 12.2465 15.6818 12.0689ZM15.6818 15.2101V15.2084C15.5855 15.2154 15.0894 15.2451 13.9825 15.2451C13.0987 15.2451 12.4766 15.2189 12.2579 15.2084V15.211C8.85587 15.0614 6.31662 14.469 6.31662 13.7602C6.31662 13.0524 8.85587 12.46 12.2579 12.3077V14.6212C12.4801 14.637 13.1171 14.6746 13.9974 14.6746C15.0535 14.6746 15.5829 14.6309 15.6818 14.6221V12.3095C19.0768 12.4609 21.6099 13.0532 21.6099 13.7602C21.6099 14.469 19.0768 15.0596 15.6818 15.2101Z\"\n [attr.fill]=\"color\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_10908_387045\">\n <rect width=\"28\" height=\"28\" [attr.fill]=\"color\" />\n </clipPath>\n </defs>\n</svg>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'icon-arrow-swap',\n standalone: true,\n templateUrl: './icon-arrow-swap.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IconArrowSwapComponent {\n @Input() color: string = 'currentColor';\n @Input() width: string = '16';\n @Input() height: string = '17';\n}\n","<svg\n [attr.width]=\"width\"\n [attr.height]=\"height\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n>\n <path\n d=\"M10.3265 14.1948C10.1998 14.1948 10.0731 14.1481 9.97313 14.0481C9.77979 13.8548 9.77979 13.5348 9.97313 13.3414L13.3131 10.0014C13.5065 9.80811 13.8265 9.80811 14.0198 10.0014C14.2131 10.1948 14.2131 10.5148 14.0198 10.7081L10.6798 14.0481C10.5798 14.1414 10.4531 14.1948 10.3265 14.1948Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M13.6668 10.8477H2.3335C2.06016 10.8477 1.8335 10.621 1.8335 10.3477C1.8335 10.0743 2.06016 9.84766 2.3335 9.84766H13.6668C13.9402 9.84766 14.1668 10.0743 14.1668 10.3477C14.1668 10.621 13.9402 10.8477 13.6668 10.8477Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M2.33329 6.86079C2.20663 6.86079 2.07996 6.81413 1.97996 6.71413C1.78663 6.52079 1.78663 6.20079 1.97996 6.00746L5.31996 2.66746C5.51329 2.47413 5.83329 2.47413 6.02663 2.66746C6.21996 2.86079 6.21996 3.18079 6.02663 3.37413L2.68663 6.71413C2.59329 6.80746 2.45996 6.86079 2.33329 6.86079Z\"\n [attr.fill]=\"color\"\n />\n <path\n d=\"M13.6668 6.86133H2.3335C2.06016 6.86133 1.8335 6.63466 1.8335 6.36133C1.8335 6.08799 2.06016 5.86133 2.3335 5.86133H13.6668C13.9402 5.86133 14.1668 6.08799 14.1668 6.36133C14.1668 6.63466 13.9402 6.86133 13.6668 6.86133Z\"\n [attr.fill]=\"color\"\n />\n</svg>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconLoaderComponent } from '../../icons';\n\n@Component({\n selector: 'base-button',\n standalone: true,\n templateUrl: './button.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, IconLoaderComponent],\n})\nexport class ButtonComponent {\n @Input() label: string = '';\n @Input() type: 'primary' | 'secondary' | 'danger' | 'neutral' = 'neutral';\n @Input() size: 'de' | 'sm' | 'md' | 'lg' = 'de';\n @Input() paddingClassX: string = 'px-8';\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() customClass: string = '';\n @Output() onClick = new EventEmitter();\n\n clickHandler() {\n this.onClick.emit();\n }\n\n get getButtonBgClass(): string {\n if (this.disabled) {\n return 'bg-gray-200 text-gray-400 cursor-not-allowed border-gray-200';\n }\n\n switch (this.type) {\n case 'primary':\n return 'bg-primary text-white hover:bg-primary-black hover:border-primary-black border-primary';\n case 'secondary':\n return 'bg-gray-200 border-gray-200 hover:bg-gray-300 text-heading-text';\n case 'danger':\n return 'bg-red-500 border-red-500 text-white hover:bg-red-600';\n case 'neutral':\n default:\n return 'bg-off-white border-grey-border hover:bg-gray-100';\n }\n }\n\n get getButtonSizeClass(): string {\n switch (this.size) {\n case 'de':\n return 'h-68px rounded-xl';\n case 'md':\n return 'h-42px rounded-lg';\n case 'sm':\n return 'h-32px rounded-md';\n default:\n return 'h-68px rounded-xl';\n }\n }\n\n get getLabelSizeClass(): string {\n switch (this.size) {\n case 'de':\n return 'text-body-2xs font-normal';\n case 'md':\n return 'text-body-2xs font-normal';\n case 'sm':\n return 'text-body-2xs font-normal';\n default:\n return 'text-body-xs font-normal';\n }\n }\n}\n","<button\n class=\"flex items-center justify-center gap-2 py-3 border font-normal text-input-grey transition-colors duration-300 ease-in-out\"\n [ngClass]=\"[getButtonBgClass, getButtonSizeClass, customClass, paddingClassX]\"\n [disabled]=\"disabled || loading\"\n (click)=\"!disabled && clickHandler()\"\n>\n <ng-content select=\"[slot=prefix]\"></ng-content>\n\n @if (loading) {\n <icon-loader size=\"24\"></icon-loader>\n } @else {\n <div>\n @if (label) {\n <p class=\"mb-0\" [ngClass]=\"[getLabelSizeClass]\">\n {{ label }}\n </p>\n } @else {\n <ng-container>\n <ng-content></ng-content>\n </ng-container>\n }\n </div>\n }\n\n <ng-content select=\"[slot=suffix]\"></ng-content>\n</button>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-hint',\n standalone: true,\n templateUrl: './hint.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HintComponent {\n @Input() hint: string = '';\n}\n","<p class=\"mb-0 text-body-3xs font-medium text-orange-500\">\n {{ hint }}\n</p>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\n\n@Component({\n selector: 'base-input-error',\n standalone: true,\n templateUrl: './input-error.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class InputErrorComponent {\n @Input() errorMessage: string = '';\n}\n","<p class=\"mb-0 text-body-3xs font-normal text-red-500\">\n {{ errorMessage }}\n</p>\n","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'base-image',\n standalone: true,\n templateUrl: './image.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class ImageComponent {\n @Input() src: string = '';\n @Input() alt?: string = 'Image';\n @Input() isFullWidth: boolean = false;\n @Input() width?: number = 50;\n @Input() height?: number = 50;\n @Input() customClass?: string = '';\n @Output() onClick = new EventEmitter();\n\n clickHandler(): void {\n this.onClick.emit();\n }\n}\n","<img\n [src]=\"src\"\n [height]=\"height\"\n [alt]=\"alt\"\n [ngClass]=\"[customClass, isFullWidth ? 'w-full' : '']\"\n [style.width]=\"isFullWidth ? '100%' : width + 'px'\"\n (click)=\"clickHandler()\"\n/>\n","export const getBaseUrl = (mode: string): string => {\n return mode === 'sandbox' ? 'https://sandbox-api.midencards.io/payment-gateway-api' : '';\n};\n","export const restrictToNumericKeys = (event: KeyboardEvent): void => {\n const allowedKeys = ['Backspace', 'Tab', 'ArrowLeft', 'ArrowRight', 'Delete', 'Home', 'End', '.'];\n\n if ((event.ctrlKey || event.metaKey) && ['a', 'c', 'v', 'x'].includes(event.key.toLowerCase())) {\n return; // allow copy/paste/select\n }\n\n // Prevent non-numeric keys\n if (!allowedKeys.includes(event.key) && !/^\\d$/.test(event.key)) {\n event.preventDefault();\n }\n\n // Prevent multiple decimals\n if (event.key === '.' && (event.target as HTMLInputElement).value.includes('.')) {\n event.preventDefault();\n }\n};\n","export const checkObjectTruthy = <T extends object>(obj: T): boolean => {\n if (obj == null || typeof obj !== 'object') return false;\n return Object.values(obj as Record<string, unknown>).every(Boolean);\n};\n","export const currencySign = (currency: string): string => {\n if (currency === 'USD') return '$';\n if (currency === 'NGN') return '₦';\n if (currency === 'EUR') return '€';\n if (currency === 'GBP') return '£';\n if (currency === 'JPY') return '¥';\n if (currency === 'CNY') return '¥';\n if (currency === 'USDC' || currency === 'usdc') return '$⧫';\n if (currency === 'USDT' || currency === 'usdt') return '₮';\n return '$';\n};\n\nexport const formatAmount = (value: number | string, currency?: string): string => {\n const num = typeof value === 'string' ? parseFloat(value) : value;\n if (isNaN(num)) return '0';\n return `${currency ? currencySign(currency) : ''} ${num?.toLocaleString('en-US')}`;\n};\n\nexport const truncateString = (str: string, num: number): string => {\n if (str.length <= num) {\n return str;\n }\n return str.slice(0, num) + '...';\n};\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n} from '@angular/core';\nimport { IconLoaderComponent } from '../../icons';\nimport { HintComponent } from '../hint/hint.component';\nimport { InputErrorComponent } from '../input-error/input-error.component';\nimport { ImageComponent } from '../image/image.component';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { formatAmount, restrictToNumericKeys } from '../../../utils';\n\n@Component({\n selector: 'base-input',\n standalone: true,\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, IconLoaderComponent, HintComponent, InputErrorComponent, ImageComponent],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => InputComponent),\n multi: true,\n },\n ],\n})\nexport class InputComponent {\n value: string = '';\n formattedValue: string = '';\n\n @Input() label: string = '';\n @Input() type: string = 'text'; // default to text input\n @Input() placeholder: string = '';\n @Input() validationError: string = '';\n @Input() hint: string = '';\n @Input() mask: string = '';\n @Input() rules: string[] = []; // allowed rules are numeric\n @Input() isAmountInput: boolean = false;\n @Input() required: boolean = false;\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() showCopyIcon: boolean = false;\n @Output() onInputChange = new EventEmitter<string>();\n @Output() onInputBlur = new EventEmitter<string>();\n\n constructor() {}\n\n onChange: any = () => {};\n onTouched: any = () => {};\n\n copyToClipboard(text: string): Promise<void> {\n return navigator.clipboard.writeText(text);\n }\n\n copyHandler(): void {\n this.copyToClipboard(this.value)\n .then(() => {\n this.hint = 'Text copied to clipboard';\n })\n .catch(() => {\n this.validationError = 'Failed to copy text to clipboard';\n });\n }\n\n onInput(event: Event) {\n const input = event.target as HTMLInputElement;\n const raw = input.value.replace(/,/g, ''); // remove commas\n this.value = raw;\n this.formattedValue = this.isAmountInput ? formatAmount(this.value) : this.value;\n\n this.onChange(this.value);\n this.onInputChange.emit(this.value);\n\n // Set caret to end (to prevent jumping when formatting)\n setTimeout(() => {\n const el = event.target as HTMLInputElement;\n el.selectionStart = el.selectionEnd = el.value.length;\n });\n }\n\n onBlur(): void {\n this.onTouched();\n this.onInputBlur.emit(this.value);\n }\n\n writeValue(val: any): void {\n this.value = val || '';\n this.formattedValue = this.isAmountInput ? formatAmount(this.value) : this.value;\n }\n\n onKeyDown(event: KeyboardEvent) {\n if (this.rules.includes('numeric')) {\n restrictToNumericKeys(event);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n}\n","<div class=\"flex flex-col gap-2\">\n @if (label) {\n <p class=\"mb-0 text-body-2xs font-normal text-heading-text\">\n {{ label }}\n @if (required) {\n <span class=\"text-orange-required\">*</span>\n }\n </p>\n }\n\n <div\n class=\"border-c px-3 py-2 flex items-center justify-between rounded-md h-12\"\n [ngClass]=\"[\n disabled ? 'bg-grey-50 cursor-not-allowed' : 'bg-white',\n validationError ? 'border-red-300 bg-red-50' : 'border-grey-100',\n ]\"\n >\n <ng-content select=\"[slot=prefix]\"></ng-content>\n <input\n [type]=\"type\"\n [value]=\"formattedValue\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur()\"\n (keydown)=\"onKeyDown($event)\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? placeholder : 'Enter ' + label.toLowerCase()\"\n inputmode=\"decimal\"\n class=\"search-input bg-transparent outline-none border-none focus:outline-none focus:ring-0 text-body-2xs text-light-copy font-normal w-full\"\n />\n\n @if (!loading) {\n <ng-container>\n <ng-content select=\"[slot=suffix]\"></ng-content>\n <!-- Copy icon -->\n @if (showCopyIcon && value && value.trim() !== '') {\n <div class=\"ml-2 flex items-center\">\n <base-image\n src=\"assets/images/copyIcon.svg\"\n alt=\"copy\"\n [width]=\"16\"\n [height]=\"16\"\n class=\"cursor-pointer hover:opacity-70 transition-opacity\"\n (onClick)=\"copyHandler()\"\n ></base-image>\n </div>\n }\n </ng-container>\n } @else {\n <ng-template>\n <icon-loader></icon-loader>\n </ng-template>\n }\n </div>\n @if (hint) {\n <base-hint [hint]=\"hint\"></base-hint>\n }\n @if (validationError) {\n <base-input-error [errorMessage]=\"validationError\"></base-input-error>\n }\n</div>\n","import {\n Component,\n EventEmitter,\n forwardRef,\n Input,\n Output,\n ViewChild,\n ElementRef,\n HostListener,\n ChangeDetectionStrategy,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { ISelectOption } from '../../../types';\nimport { CommonModule } from '@angular/common';\nimport { IconChevronDownComponent, IconChevronUpComponent, IconLoaderComponent } from '../../icons';\nimport { HintComponent } from '../hint/hint.component';\nimport { InputErrorComponent } from '../input-error/input-error.component';\nimport { ImageComponent } from '../image/image.component';\n\n@Component({\n selector: 'base-select',\n standalone: true,\n templateUrl: './select.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n IconLoaderComponent,\n IconChevronUpComponent,\n IconChevronDownComponent,\n HintComponent,\n InputErrorComponent,\n ImageComponent,\n ],\n})\nexport class SelectComponent implements ControlValueAccessor {\n @Input() set options(value: ISelectOption[]) {\n this._options = value || [];\n this.filteredOptions = [...this._options];\n this.syncSelectedFromValue(this._value);\n }\n get options() {\n return this._options;\n }\n private _options: ISelectOption[] = [];\n filteredOptions: ISelectOption[] = [];\n\n @Input() placeholder: string = 'Select an option';\n @Input() hasSearch: boolean = true;\n @Input() disabled: boolean = false;\n @Input() loading: boolean = false;\n @Input() validationError: string = '';\n @Input() label: string = '';\n @Input() hint: string = '';\n @Input() required: boolean = false;\n @Input() itemImageType: 'country' | 'bank' | null = null;\n\n @Output() onSelectChange = new EventEmitter<string>();\n\n @ViewChild('triggerRef', { static: false }) triggerRef!: ElementRef<HTMLElement>;\n @ViewChild('menuRef', { static: false }) menuRef!: ElementRef<HTMLElement>;\n @ViewChild('searchRef', { static: false }) searchRef!: ElementRef<HTMLInputElement>;\n\n selectedOption: ISelectOption | null = null;\n _value: string = '';\n\n // dropdown state\n isOpen = false;\n activeIndex: number = -1; // for keyboard navigation\n\n onChange: (value: any) => void = () => {};\n onTouched: () => void = () => {};\n\n // ==== CVA ====\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n writeValue(value: any): void {\n this._value = value;\n this.syncSelectedFromValue(value);\n this.filteredOptions = [...this.options];\n }\n\n private syncSelectedFromValue(value: string) {\n this.selectedOption = this.options.find((o) => o.value === value) || null;\n }\n\n // ==== Selection ====\n onSelect(value: string): void {\n if (this.disabled) return;\n this._value = value;\n this.selectedOption = this.options.find((o) => o.value === value) || null;\n this.filteredOptions = [...this.options];\n this.onChange(value);\n this.onTouched();\n this.onSelectChange.emit(value);\n this.close();\n }\n\n // ==== Search ====\n onInput(event: Event) {\n const input = (event.target as HTMLInputElement).value.toLowerCase();\n this.filteredOptions = this.options.filter((option) =>\n option.label.toLowerCase().includes(input),\n );\n this.activeIndex = this.filteredOptions.length ? 0 : -1;\n }\n\n // ==== Bank logo ====\n bankLogoHandler(bankCode: string): string {\n // return bankLogoMapping?.[bankCode];\n return '';\n }\n\n // ==== Dropdown controls ====\n toggle(): void {\n if (this.disabled) return;\n this.isOpen ? this.close() : this.open();\n }\n\n open(): void {\n if (this.disabled || this.isOpen) return;\n this.isOpen = true;\n // reset search & list to current options when opening\n this.filteredOptions = [...this.options];\n this.activeIndex = this.selectedOption\n ? Math.max(\n 0,\n this.filteredOptions.findIndex((o) => o.value === this.selectedOption!.value),\n )\n : 0;\n\n // focus search input if present\n setTimeout(() => {\n if (this.hasSearch && this.searchRef?.nativeElement) {\n this.searchRef.nativeElement.focus();\n this.searchRef.nativeElement.select();\n }\n });\n }\n\n close(): void {\n if (!this.isOpen) return;\n this.isOpen = false;\n this.activeIndex = -1;\n }\n\n // Close on outside click\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent) {\n if (!this.isOpen) return;\n const target = event.target as Node;\n const triggerEl = this.triggerRef?.nativeElement;\n const menuEl = this.menuRef?.nativeElement;\n if (triggerEl && !triggerEl.contains(target) && menuEl && !menuEl.contains(target)) {\n this.close();\n }\n }\n\n // ==== Keyboard support on trigger ====\n onTriggerKeydown(event: KeyboardEvent) {\n if (this.disabled) return;\n switch (event.key) {\n case 'Enter':\n case ' ':\n case 'Spacebar':\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isOpen) this.open();\n else this.moveActive(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isOpen) this.open();\n else this.moveActive(-1);\n break;\n case 'Escape':\n if (this.isOpen) {\n event.preventDefault();\n this.close();\n }\n break;\n }\n }\n\n // ==== Keyboard support inside menu ====\n onMenuKeydown(event: KeyboardEvent) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.moveActive(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.moveActive(-1);\n break;\n case 'Home':\n event.preventDefault();\n this.activeIndex = this.filteredOptions.length ? 0 : -1;\n this.scrollActiveIntoView();\n break;\n case 'End':\n event.preventDefault();\n this.activeIndex = this.filteredOptions.length - 1;\n this.scrollActiveIntoView();\n break;\n case 'Enter':\n event.preventDefault();\n if (this.activeIndex >= 0) {\n const opt = this.filteredOptions[this.activeIndex];\n if (opt) this.onSelect(opt.value);\n }\n break;\n case 'Escape':\n event.preventDefault();\n this.close();\n break;\n case 'Tab':\n // allow normal tab flow but close the menu\n this.close();\n break;\n }\n }\n\n private moveActive(delta: number) {\n if (!this.filteredOptions.length) return;\n const max = this.filteredOptions.length - 1;\n const next = this.activeIndex < 0 ? 0 : Math.min(max, Math.max(0, this.activeIndex + delta));\n this.activeIndex = next;\n this.scrollActiveIntoView();\n }\n\n private scrollActiveIntoView() {\n const menu = this.menuRef?.nativeElement;\n if (!menu) return;\n const items = menu.querySelectorAll<HTMLElement>('[data-option]');\n if (this.activeIndex >= 0 && this.activeIndex < items.length) {\n const el = items[this.activeIndex];\n el?.scrollIntoView({ block: 'nearest' });\n }\n }\n\n // For a11y labelling\n get displayText(): string {\n return this.selectedOption?.label || this.placeholder || `Select ${this.label}`;\n }\n}\n","<div class=\"flex flex-col gap-2 relative\">\n @if (label) {\n <p class=\"mb-0 text-body-2xs font-normal text-heading-text\">\n {{ label }}\n @if (required) {\n <span class=\"text-orange-required\">*</span>\n }\n </p>\n }\n\n <!-- Trigger -->\n <div\n #triggerRef\n class=\"border-c rounded-md flex items-center justify-between h-12 cursor-pointer px-3 py-2\"\n [ngClass]=\"[\n disabled ? 'bg-grey-100 cursor-not-allowed' : 'bg-white',\n validationError ? 'border-red-300 bg-red-50' : 'border-grey-100 bg-white',\n ]\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-controls]=\"isOpen ? 'select-menu' : null\"\n [attr.aria-disabled]=\"disabled || null\"\n [attr.aria-activedescendant]=\"isOpen && activeIndex >= 0 ? 'option-' + activeIndex : null\"\n tabindex=\"0\"\n (click)=\"toggle()\"\n (keydown)=\"onTriggerKeydown($event)\"\n >\n <div class=\"flex items-center gap-2\">\n <ng-content select=\"[slot=prefix]\"></ng-content>\n <div class=\"flex items-center gap-2\">\n @if (selectedOption && itemImageType === 'country') {\n <base-image\n [src]=\"'https://flagcdn.com/w40/' + selectedOption.countryCode?.toLowerCase() + '.png'\"\n [alt]=\"selectedOption.countryCode\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image>\n }\n\n @if (selectedOption && itemImageType === 'bank') {\n <!-- <base-image\n [src]=\"bankLogoHandler(selectedOption?.['bankCode'] || selectedOption?.value)\"\n [alt]=\"selectedOption?.value\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image> -->\n }\n\n <p\n class=\"text-body-2xs font-normal mb-0\"\n [ngClass]=\"[selectedOption?.label ? 'text-sub-copy' : 'text-grey-500']\"\n >\n {{ displayText }}\n </p>\n </div>\n </div>\n\n @if (loading) {\n <icon-loader></icon-loader>\n } @else {\n @if (isOpen) {\n <icon-chevron-up width=\"20\" height=\"20\" color=\"#8FAECA\"></icon-chevron-up>\n } @else {\n <icon-chevron-down width=\"20\" height=\"20\" color=\"#8FAECA\"></icon-chevron-down>\n }\n }\n </div>\n\n <!-- Menu -->\n @if (isOpen) {\n <div\n #menuRef\n id=\"select-menu\"\n class=\"border-c bg-white rounded-md border-grey-border text-body-xs font-normal text-input-grey w-full mt-2 max-h-22rem overflow-y-auto\"\n role=\"listbox\"\n [attr.aria-label]=\"label || 'Options'\"\n style=\"position: absolute; top: 100%; z-index: 10;\"\n (keydown)=\"onMenuKeydown($event)\"\n >\n @if (hasSearch) {\n <div class=\"px-4 pt-2 pb-1\">\n <input\n #searchRef\n type=\"text\"\n (input)=\"onInput($event)\"\n [placeholder]=\"'Search ' + label\"\n class=\"bg-transparent outline-none border-b pb-2 w-full focus:outline-none focus:ring-0 text-body-2xs text-light-copy font-normal\"\n />\n </div>\n }\n\n <div\n class=\"px-4 py-3 first:pt-0 hover:bg-gray-100 flex items-center gap-2 cursor-pointer\"\n *ngFor=\"let option of filteredOptions; let i = index\"\n (click)=\"onSelect(option.value)\"\n [attr.id]=\"'option-' + i\"\n data-option\n role=\"option\"\n [attr.aria-selected]=\"selectedOption?.value === option.value\"\n [ngClass]=\"{ 'bg-gray-100': i === activeIndex }\"\n >\n @if (itemImageType === 'country') {\n <base-image\n [src]=\"'https://flagcdn.com/w40/' + (option.countryCode || '').toLowerCase() + '.png'\"\n [alt]=\"option.countryCode\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image>\n }\n\n @if (itemImageType === 'bank') {\n <!-- <base-image\n [src]=\"bankLogoHandler(option['bankCode'] || option.value)\"\n [alt]=\"option.value\"\n [width]=\"28\"\n customClass=\"rounded-lg\"\n ></base-image> -->\n }\n\n <p class=\"mb-0 text-body-2xs font-medium\">\n {{ option.label }}\n </p>\n </div>\n </div>\n }\n\n @if (hint) {\n <base-hint [hint]=\"hint\"></base-hint>\n }\n @if (validationError) {\n <base-input-error [errorMessage]=\"validationError\"></base-input-error>\n }\n</div>\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnInit,\n Output,\n} from '@angular/core';\n\n@Component({\n selector: 'base-radio-group',\n standalone: true,\n templateUrl: './radio-group.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule],\n})\nexport class RadioGroupComponent implements OnInit {\n selected: string = '';\n\n @Input() options: { label: string; value: string }[] = [];\n @Input() type: 'vertical' | 'horizontal' = 'vertical';\n @Output() selectedChange = new EventEmitter<any>();\n\n onSelect(value: any) {\n this.selected = value;\n this.selectedChange.emit(this.selected);\n }\n\n ngOnInit(): void {\n this.selected = this.options.length > 0 ? this.options[0].value : '';\n this.selectedChange.emit(this.selected);\n }\n}\n","<div\n class=\"flex flex-col\"\n [ngClass]=\"{\n 'flex-row gap-5': type === 'horizontal',\n 'flex-col gap-6': type === 'vertical',\n }\"\n>\n <div\n *ngFor=\"let option of options\"\n (click)=\"onSelect(option.value)\"\n class=\"flex items-center gap-2 cursor-pointer transition-colors duration-200\"\n >\n <div\n class=\"w-4 h-4 rounded-full border flex items-center justify-center\"\n [ngClass]=\"{\n 'bg-orange-500 border-orange-500': selected === option.value,\n 'bg-white border-grey-200': selected !== option.value,\n }\"\n >\n @if (selected === option.value) {\n <div class=\"bg-white w-2 h-2 rounded-full\"></div>\n }\n </div>\n <p class=\"mb-0 text-body-2xs font-medium text-heading-text\">\n {{ option.label }}\n </p>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { IconCopySuccessComponent } from '../../icons';\n\n@Component({\n selector: 'base-copy',\n standalone: true,\n templateUrl: './copy.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconCopySuccessComponent],\n})\nexport class CopyComponent {\n @Input() copyText: string = '';\n @Input() color: string = '';\n\n copyToClipboard(text: string): Promise<void> {\n return navigator.clipboard.writeText(text);\n }\n\n copyHandler(): void {\n this.copyToClipboard(this.copyText)\n .then(() => {})\n .catch((err) => {});\n }\n}\n","<icon-copy-success\n class=\"cursor-pointer\"\n [color]=\"color\"\n (click)=\"copyHandler()\"\n></icon-copy-success>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CopyComponent } from '../copy/copy.component';\nimport { ImageComponent } from '../image/image.component';\nimport { truncateString } from '../../../utils';\n\n@Component({\n selector: 'base-label-info',\n standalone: true,\n templateUrl: './label-info.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, CopyComponent, ImageComponent],\n})\nexport class LabelInfoComponent {\n @Input() type: 'vertical' | 'horizontal' = 'vertical';\n @Input() label: string = '';\n @Input() labelCustomClass: string = 'text-body-4xs font-medium text-light-copy';\n @Input() valueImageSrc: string = '';\n @Input() valueImageCustomClass: string = '';\n @Input() valueImagePosition: 'prefix' | 'suffix' = 'prefix';\n @Input() hasValueCopy: boolean = false;\n @Input() value: string = '';\n @Input() valueCustomClass: string = 'text-body-2xs font-medium text-sub-copy';\n @Input() alignRight: boolean = false;\n\n truncateStringHandler(str: string, num: number): string {\n return truncateString(str, num);\n }\n}\n","@if (type === 'vertical') {\n <div class=\"flex flex-col gap-1\" [ngClass]=\"{ 'text-right items-end': alignRight }\">\n <p [ngClass]=\"labelCustomClass\">{{ label.toUpperCase() }}</p>\n <div class=\"flex items-center gap-1\">\n @if (valueImageSrc && valueImagePosition === 'prefix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n\n @if (!hasValueCopy) {\n <p [ngClass]=\"valueCustomClass\">\n {{ value }}\n </p>\n } @else {\n <p [ngClass]=\"valueCustomClass\" class=\"truncate\">\n {{ truncateStringHandler(value, 40) }}\n </p>\n }\n\n @if (hasValueCopy) {\n <base-copy [copyText]=\"value\" color=\"#9DBFDE\"></base-copy>\n }\n\n @if (valueImageSrc && valueImagePosition === 'suffix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n </div>\n </div>\n} @else {\n <div class=\"flex items-center justify-between\">\n <p [ngClass]=\"labelCustomClass\">{{ label.toUpperCase() }}</p>\n <div class=\"flex items-center gap-1\">\n @if (valueImageSrc && valueImagePosition === 'prefix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n <p [ngClass]=\"valueCustomClass\">\n {{ value }}\n </p>\n\n @if (hasValueCopy) {\n <base-copy [copyText]=\"value\" color=\"#9DBFDE\"></base-copy>\n }\n\n @if (valueImageSrc && valueImagePosition === 'suffix') {\n <base-image\n [src]=\"valueImageSrc\"\n [alt]=\"value\"\n [width]=\"22\"\n [customClass]=\"valueImageCustomClass\"\n ></base-image>\n }\n </div>\n </div>\n}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { LabelInfoComponent } from '../label-info/label-info.component';\nimport { ButtonComponent } from '../button/button.component';\nimport { IconCheckCircleComponent } from '../../icons';\n\n@Component({\n selector: 'base-success',\n standalone: true,\n templateUrl: './success.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [LabelInfoComponent, ButtonComponent, IconCheckCircleComponent],\n})\nexport class SuccessComponent {}\n","<div class=\"flex flex-col gap-8 p-16\">\n <div class=\"flex flex-col gap-8\">\n <div class=\"flex flex-col gap-8\">\n <icon-check-circle color=\"#F47A1F\" class=\"mx-auto\"></icon-check-circle>\n <div class=\"flex flex-col text-center\" style=\"gap: 2px\">\n <p class=\"text-heading-text font-medium text-header-2xl\">₦2,500.00</p>\n <p class=\"text-sub-copy font-regular text-body-3xs\">Has been paid successfully</p>\n </div>\n </div>\n\n <div class=\"flex flex-col\">\n <div class=\"py-4 border-b border-grey-100\">\n <base-label-info\n type=\"horizontal\"\n label=\"Order ID\"\n value=\"9900009000-8890-8829hd7\"\n ></base-label-info>\n </div>\n <div class=\"py-4\">\n <base-label-info\n type=\"horizontal\"\n label=\"Payment date\"\n value=\"July 24, 2025\"\n ></base-label-info>\n </div>\n </div>\n </div>\n\n <div class=\"mx-auto\" style=\"width: 80%;\">\n <base-button\n label=\"Return to Merchant Website\"\n type=\"secondary\"\n customClass=\"w-full\"\n ></base-button>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Output } from '@angular/core';\nimport { IconChevronLeftComponent } from '../../icons';\n\n@Component({\n selector: 'base-back',\n standalone: true,\n templateUrl: './back.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconChevronLeftComponent],\n})\nexport class BackComponent {\n @Output() back = new EventEmitter<void>();\n\n goBack(): void {\n this.back.emit();\n }\n}\n","<div class=\"flex items-center gap-2 cursor-pointer\" (click)=\"goBack()\">\n <icon-chevron-left></icon-chevron-left>\n <p class=\"mb-0 text-body-xs font-normal\">Back</p>\n</div>\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IconBuzapayIconComponent } from '../../icons';\nimport { BackComponent } from '../back/back.component';\n\n@Component({\n selector: 'base-card',\n standalone: true,\n templateUrl: './card.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [IconBuzapayIconComponent, BackComponent],\n})\nexport class CardComponent {\n @Input() showBackButton: boolean = false;\n @Output() back = new EventEmitter<void>();\n\n goBack(): void {\n this.back.emit();\n }\n}\n","<div class=\"checkout-card w-full h-screen flex flex-col items-center justify-center text-white\">\n <div class=\"flex w-1/2\">\n @if (showBackButton) {\n <base-back (back)=\"goBack()\"></base-back>\n }\n\n <div class=\"flex gap-2 w-full\">\n <div class=\"flex flex-col gap-8 w-full\">\n <div class=\"bg-off-white rounded-xl\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"flex items-center gap-2 justify-center\">\n <p class=\"text-light-white-100 text-body-2xs font-regular\">Powered by Buzapay</p>\n <icon-buzapay-icon color=\"#E8F4FF\"></icon-buzapay-icon>\n </div>\n </div>\n\n <!-- Close Icon -->\n <div\n class=\"close-icon flex flex-col items-center justify-center self-start cursor-pointer hover:bg-gray-500\"\n >\n <p class=\"text-white\">x</p>\n </div>\n </div>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, Input } from '@angular/core';\nimport { formatAmount } from '../../../utils/string.util';\nimport { CommonModule } from '@angular/common';\nimport { IconUsdcComponent, IconUsdtComponent } from '../../icons';\n\n@Component({\n selector: 'base-currency-amount',\n standalone: true,\n templateUrl: './currency-amount.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [CommonModule, IconUsdcComponent, IconUsdtComponent],\n})\nexport class CurrencyAmountComponent {\n @Input() currency: string = '';\n @Input() amount: number | string = 0;\n @Input() textClass: string = '';\n @Input() iconColorClass: string = '';\n @Input() iconWidth: string = '16';\n @Input() iconHeight: string = '16';\n\n formatAmountHandler(amount: number | string, currency?: string): string {\n return formatAmount(amount, currency);\n }\n}\n","@if (currency.toUpperCase() !== 'USDT' && currency.toUpperCase() !== 'USDC') {\n <p [ngClass]=\"textClass\">\n {{ formatAmountHandler(amount, currency.toUpperCase()) }}\n </p>\n}\n\n@if (currency.toUpperCase() === 'USDT' || currency.toUpperCase() === 'USDC') {\n <div class=\"flex items-center gap-1\">\n @if (currency.toUpperCase() === 'USDT') {\n <icon-usdt [width]=\"iconWidth\" [height]=\"iconHeight\" [color]=\"iconColorClass\"></icon-usdt>\n }\n\n @if (currency.toUpperCase() === 'USDC') {\n <icon-usdc [width]=\"iconWidth\" [height]=\"iconHeight\" [color]=\"iconColorClass\"></icon-usdc>\n }\n <p [ngClass]=\"textClass\">\n {{ formatAmountHandler(amount) }}\n </p>\n </div>\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { IApiResponse, IPaymentObject } from '../models';\nimport { getBaseUrl } from '../utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CheckoutService {\n constructor(private http: HttpClient) {}\n\n createPaymentLink(\n payload: IPaymentObject,\n environment: string,\n secretKey: string,\n ): Observable<IApiResponse<any>> {\n const baseUrl = getBaseUrl(environment);\n return this.http.post<IApiResponse<any>>(\n `${baseUrl}/api/v1/checkout/generate-payment-link2`,\n { ...payload, linkName: `${Date.now()}-link` },\n {\n headers: {\n merchantId: secretKey,\n },\n },\n );\n }\n}\n","/*\n * Public API Surface of miden-pg-angular\n */\n\nexport * from './lib/miden-pg-angular';\nexport * from './lib/types';\nexport * from './lib/tokens';\nexport * from './lib/providers';\nexport * from './lib/components/index';\nexport * from './lib/models/index';\nexport * from './lib/services/checkout.service';\nexport * from './lib/utils/index';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
package/package.json
CHANGED
package/styles.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.\!visible,.visible{visibility:visible!important}.static{position:static!important}.fixed{position:fixed!important}.absolute{position:absolute!important}.relative{position:relative!important}.inset-0{inset:0!important}.col-span-1{grid-column:span 1/span 1!important}.col-span-2{grid-column:span 2/span 2!important}.mx-auto{margin-left:auto!important;margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.ml-2{margin-left:.5rem!important}.mt-2{margin-top:.5rem!important}.block{display:block!important}.inline{display:inline!important}.flex{display:flex!important}.table{display:table!important}.grid{display:grid!important}.contents{display:contents!important}.hidden{display:none!important}.h-12{height:3rem!important}.h-2{height:.5rem!important}.h-4{height:1rem!important}.h-full{height:100%!important}.h-screen{height:100vh!important}.w-1\/2{width:50%!important}.w-2{width:.5rem!important}.w-2\/3{width:66.666667%!important}.w-4{width:1rem!important}.w-full{width:100%!important}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}@keyframes spin{to{transform:rotate(1turn)}}.animate-spin{animation:spin 1s linear infinite!important}.cursor-not-allowed{cursor:not-allowed!important}.cursor-pointer{cursor:pointer!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))!important}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))!important}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))!important}.flex-row{flex-direction:row!important}.flex-col{flex-direction:column!important}.place-items-center{place-items:center!important}.items-end{align-items:flex-end!important}.items-center{align-items:center!important}.justify-center{justify-content:center!important}.justify-between{justify-content:space-between!important}.gap-1{gap:.25rem!important}.gap-10{gap:2.5rem!important}.gap-2{gap:.5rem!important}.gap-4{gap:1rem!important}.gap-5{gap:1.25rem!important}.gap-6{gap:1.5rem!important}.gap-8{gap:2rem!important}.self-start{align-self:flex-start!important}.overflow-y-auto{overflow-y:auto!important}.overflow-y-scroll{overflow-y:scroll!important}.truncate{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.break-words{overflow-wrap:break-word!important}.rounded{border-radius:.25rem!important}.rounded-2xl{border-radius:1rem!important}.rounded-full{border-radius:9999px!important}.rounded-lg{border-radius:.5rem!important}.rounded-md{border-radius:.375rem!important}.rounded-xl{border-radius:.75rem!important}.rounded-l-xl{border-top-left-radius:.75rem!important;border-bottom-left-radius:.75rem!important}.border{border-width:1px!important}.border-b{border-bottom-width:1px!important}.border-none{border-style:none!important}.border-gray-200{--tw-border-opacity:1!important;border-color:rgb(229 231 235/var(--tw-border-opacity,1))!important}.border-grey-100{--tw-border-opacity:1!important;border-color:rgb(225 235 245/var(--tw-border-opacity,1))!important}.border-grey-border{--tw-border-opacity:1!important;border-color:rgb(231 238 255/var(--tw-border-opacity,1))!important}.border-orange-500{--tw-border-opacity:1!important;border-color:rgb(244 122 31/var(--tw-border-opacity,1))!important}.border-primary{--tw-border-opacity:1!important;border-color:rgb(18 34 50/var(--tw-border-opacity,1))!important}.border-red-300{--tw-border-opacity:1!important;border-color:rgb(252 165 165/var(--tw-border-opacity,1))!important}.border-red-500{--tw-border-opacity:1!important;border-color:rgb(239 68 68/var(--tw-border-opacity,1))!important}.bg-\[\#EFF7FF\]{--tw-bg-opacity:1!important;background-color:rgb(239 247 255/var(--tw-bg-opacity,1))!important}.bg-gray-100{background-color:rgb(243 244 246/var(--tw-bg-opacity,1))!important}.bg-gray-100,.bg-gray-200{--tw-bg-opacity:1!important}.bg-gray-200{background-color:rgb(229 231 235/var(--tw-bg-opacity,1))!important}.bg-grey-100{background-color:rgb(225 235 245/var(--tw-bg-opacity,1))!important}.bg-grey-100,.bg-grey-50{--tw-bg-opacity:1!important}.bg-grey-50{background-color:rgb(245 249 252/var(--tw-bg-opacity,1))!important}.bg-heading-text{--tw-bg-opacity:1!important;background-color:rgb(24 45 65/var(--tw-bg-opacity,1))!important}.bg-light-white-50{--tw-bg-opacity:1!important;background-color:rgb(254 255 255/var(--tw-bg-opacity,1))!important}.bg-off-white{--tw-bg-opacity:1!important;background-color:rgb(248 253 255/var(--tw-bg-opacity,1))!important}.bg-orange-500{--tw-bg-opacity:1!important;background-color:rgb(244 122 31/var(--tw-bg-opacity,1))!important}.bg-primary{background-color:rgb(18 34 50/var(--tw-bg-opacity,1))!important}.bg-primary,.bg-red-50{--tw-bg-opacity:1!important}.bg-red-50{background-color:rgb(254 242 242/var(--tw-bg-opacity,1))!important}.bg-red-500{--tw-bg-opacity:1!important;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))!important}.bg-transparent{background-color:transparent!important}.bg-white{--tw-bg-opacity:1!important;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))!important}.bg-white\/60{background-color:hsla(0,0%,100%,.6)!important}.p-16{padding:4rem!important}.p-4{padding:1rem!important}.px-10{padding-left:2.5rem!important;padding-right:2.5rem!important}.px-12{padding-left:3rem!important;padding-right:3rem!important}.px-3{padding-left:.75rem!important;padding-right:.75rem!important}.px-4{padding-left:1rem!important;padding-right:1rem!important}.px-6{padding-left:1.5rem!important;padding-right:1.5rem!important}.px-8{padding-left:2rem!important;padding-right:2rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:.75rem!important;padding-bottom:.75rem!important}.py-4{padding-top:1rem!important;padding-bottom:1rem!important}.py-8{padding-top:2rem!important;padding-bottom:2rem!important}.pb-1{padding-bottom:.25rem!important}.pb-10{padding-bottom:2.5rem!important}.pb-2{padding-bottom:.5rem!important}.pb-4{padding-bottom:1rem!important}.pt-2{padding-top:.5rem!important}.text-center{text-align:center!important}.text-right{text-align:right!important}.text-body-2xs{font-size:14px!important}.text-body-2xs,.text-body-3xs{line-height:150%!important;letter-spacing:0!important}.text-body-3xs{font-size:12px!important}.text-body-4xs{font-size:10px!important;line-height:132%!important;letter-spacing:0!important}.text-body-lg{font-size:22px!important}.text-body-lg,.text-body-xs{line-height:120%!important;letter-spacing:0!important}.text-body-xs{font-size:16px!important}.text-header-2xl{font-size:40px!important;line-height:150%!important;letter-spacing:0!important}.text-sm{font-size:.875rem!important;line-height:1.25rem!important}.font-extrabold{font-weight:800!important}.font-medium{font-weight:500!important}.font-normal{font-weight:400!important}.font-semibold{font-weight:600!important}.uppercase{text-transform:uppercase!important}.lowercase{text-transform:lowercase!important}.text-gray-400{--tw-text-opacity:1!important;color:rgb(156 163 175/var(--tw-text-opacity,1))!important}.text-grey-500{--tw-text-opacity:1!important;color:rgb(157 191 222/var(--tw-text-opacity,1))!important}.text-heading-text{--tw-text-opacity:1!important;color:rgb(24 45 65/var(--tw-text-opacity,1))!important}.text-input-grey{--tw-text-opacity:1!important;color:rgb(62 73 84/var(--tw-text-opacity,1))!important}.text-light-copy{--tw-text-opacity:1!important;color:rgb(85 117 145/var(--tw-text-opacity,1))!important}.text-light-white-100{--tw-text-opacity:1!important;color:rgb(250 253 255/var(--tw-text-opacity,1))!important}.text-orange-500{--tw-text-opacity:1!important;color:rgb(244 122 31/var(--tw-text-opacity,1))!important}.text-orange-required{--tw-text-opacity:1!important;color:rgb(246 149 76/var(--tw-text-opacity,1))!important}.text-primary-black{--tw-text-opacity:1!important;color:rgb(35 31 32/var(--tw-text-opacity,1))!important}.text-red-500{--tw-text-opacity:1!important;color:rgb(239 68 68/var(--tw-text-opacity,1))!important}.text-sub-copy{color:rgb(39 75 107/var(--tw-text-opacity,1))!important}.text-sub-copy,.text-white{--tw-text-opacity:1!important}.text-white{color:rgb(255 255 255/var(--tw-text-opacity,1))!important}.opacity-25{opacity:.25!important}.opacity-75{opacity:.75!important}.shadow{--tw-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)!important;--tw-shadow-colored:0 1px 3px 0 var(--tw-shadow-color),0 1px 2px -1px var(--tw-shadow-color)!important;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)!important}.outline-none{outline:2px solid transparent!important;outline-offset:2px!important}.blur{--tw-blur:blur(8px)!important}.blur,.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)!important}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.transition-opacity{transition-property:opacity!important;transition-timing-function:cubic-bezier(.4,0,.2,1)!important;transition-duration:.15s!important}.duration-200{transition-duration:.2s!important}.duration-300{transition-duration:.3s!important}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)!important}.\[k\:string\]{k:string!important}@font-face{font-family:Euclid Circular A;src:url(fonts/EuclidCircularARegular.ttf) format("ttf");font-weight:400;font-style:normal;font-display:swap}body{font-family:Euclid Circular A,sans-serif;margin:0;padding:0;box-sizing:border-box}.border-c{border:1px solid}.checkout-card{background-color:rgba(15,38,59,.898)}.checkout-card .close-icon{background-color:rgba(250,253,255,.051);padding:0 10px 2px;border-radius:4px}.h-68px{height:68px}.h-42px{height:42px}.h-32px{height:32px}.first\:pt-0:first-child{padding-top:0!important}.hover\:border-primary-black:hover{--tw-border-opacity:1!important;border-color:rgb(35 31 32/var(--tw-border-opacity,1))!important}.hover\:bg-gray-100:hover{--tw-bg-opacity:1!important;background-color:rgb(243 244 246/var(--tw-bg-opacity,1))!important}.hover\:bg-gray-300:hover{--tw-bg-opacity:1!important;background-color:rgb(209 213 219/var(--tw-bg-opacity,1))!important}.hover\:bg-gray-500:hover{--tw-bg-opacity:1!important;background-color:rgb(107 114 128/var(--tw-bg-opacity,1))!important}.hover\:bg-primary-black:hover{--tw-bg-opacity:1!important;background-color:rgb(35 31 32/var(--tw-bg-opacity,1))!important}.hover\:bg-red-600:hover{--tw-bg-opacity:1!important;background-color:rgb(220 38 38/var(--tw-bg-opacity,1))!important}.hover\:opacity-70:hover{opacity:.7!important}.focus\:outline-none:focus{outline:2px solid transparent!important;outline-offset:2px!important}.focus\:ring-0:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color)!important;--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(var(--tw-ring-offset-width)) var(--tw-ring-color)!important;box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)!important}
|