@xsolla/payment-client-core 0.1.7 → 0.1.9
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/esm2020/lib/core/country/country-iso-code.enum.mjs +6 -0
- package/esm2020/lib/core/payment/finance-details/cart-summary.interface.mjs +1 -1
- package/esm2020/lib/core/payment/finance-details/finance-details.interface.mjs +2 -0
- package/esm2020/lib/core/payment/finance-details/finance-details.service.mjs +25 -12
- package/esm2020/lib/core/payment/finance-details/price.helpers.mjs +2 -2
- package/esm2020/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.mjs +2 -0
- package/esm2020/lib/core/payment/finance-details/status/fields-with-currency.mjs +16 -0
- package/esm2020/lib/core/payment/finance-details/status/finance-info.interface.mjs +2 -0
- package/esm2020/lib/core/payment/finance-details/status/status-finance-details-adapter.service.mjs +290 -0
- package/esm2020/lib/core/payment/finance-details/summary/default-image-patterns.const.mjs +10 -0
- package/esm2020/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.mjs +7 -0
- package/esm2020/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.mjs +264 -0
- package/esm2020/lib/core/payment/finance-details/vat-details-key.enum.mjs +14 -0
- package/esm2020/lib/core/payment/payment.interface.mjs +1 -1
- package/esm2020/lib/core/payment/payment.service.mjs +2 -2
- package/esm2020/lib/core/payment/status/status-finance-info.interface.mjs +2 -0
- package/esm2020/lib/core/payment/status/status-order.interface.mjs +2 -0
- package/esm2020/lib/core/payment/status/status.interface.mjs +1 -1
- package/esm2020/lib/core/payment/status/status.service.mjs +10 -6
- package/esm2020/lib/core/payment/xps-summary.interface.mjs +1 -1
- package/esm2020/lib/core/session/session.service.mjs +57 -0
- package/esm2020/lib/core/type-guards/is-null.function.mjs +4 -0
- package/esm2020/lib/core/type-guards/is-undefined.function.mjs +4 -0
- package/esm2020/lib/core-library.module.mjs +1 -4
- package/esm2020/lib/core-library.service.mjs +4 -1
- package/fesm2015/xsolla-payment-client-core.mjs +729 -304
- package/fesm2015/xsolla-payment-client-core.mjs.map +1 -1
- package/fesm2020/xsolla-payment-client-core.mjs +709 -293
- package/fesm2020/xsolla-payment-client-core.mjs.map +1 -1
- package/lib/core/country/country-iso-code.enum.d.ts +4 -0
- package/lib/core/payment/finance-details/cart-summary.interface.d.ts +2 -2
- package/lib/core/payment/finance-details/finance-details.interface.d.ts +11 -0
- package/lib/core/payment/finance-details/finance-details.service.d.ts +12 -5
- package/lib/core/payment/finance-details/price.helpers.d.ts +3 -3
- package/lib/core/payment/finance-details/status/field-with-amount-and-currency.interface.d.ts +7 -0
- package/lib/core/payment/finance-details/status/fields-with-currency.d.ts +1 -0
- package/lib/core/payment/finance-details/status/finance-info.interface.d.ts +4 -0
- package/lib/core/payment/finance-details/status/status-finance-details-adapter.service.d.ts +31 -0
- package/lib/core/payment/finance-details/summary/sales-tax-details-key.enum.d.ts +5 -0
- package/lib/core/payment/finance-details/summary/summary-finance-details-adapter.service.d.ts +24 -0
- package/lib/core/payment/finance-details/vat-details-key.enum.d.ts +12 -0
- package/lib/core/payment/payment.interface.d.ts +1 -1
- package/lib/core/payment/payment.service.d.ts +1 -1
- package/lib/core/payment/status/status-finance-info.interface.d.ts +4 -0
- package/lib/core/payment/status/status-order.interface.d.ts +12 -0
- package/lib/core/payment/status/status.interface.d.ts +4 -16
- package/lib/core/payment/status/status.service.d.ts +3 -1
- package/lib/core/payment/xps-summary.interface.d.ts +1 -1
- package/lib/core/session/session.service.d.ts +18 -0
- package/lib/core/type-guards/is-null.function.d.ts +1 -0
- package/lib/core/type-guards/is-undefined.function.d.ts +1 -0
- package/lib/core-library.service.d.ts +2 -0
- package/package.json +1 -1
- package/xsolla-payment-client-core-0.1.9.tgz +0 -0
- package/esm2020/lib/core/payment/finance-details/default-image-patterns.const.mjs +0 -10
- package/esm2020/lib/core/payment/finance-details/finance-details-response.token.mjs +0 -8
- package/esm2020/lib/core/payment/finance-details/finance-details.class.mjs +0 -237
- package/lib/core/payment/finance-details/finance-details-response.token.d.ts +0 -7
- package/lib/core/payment/finance-details/finance-details.class.d.ts +0 -29
- package/xsolla-payment-client-core-0.1.7.tgz +0 -0
- /package/lib/core/payment/finance-details/{default-image-patterns.const.d.ts → summary/default-image-patterns.const.d.ts} +0 -0
|
@@ -2,8 +2,8 @@ import { CartLine } from './cart-line.interface';
|
|
|
2
2
|
export interface CartSummary {
|
|
3
3
|
transactionDetails?: CartLine[];
|
|
4
4
|
shipping?: CartLine[];
|
|
5
|
-
subtotal?: CartLine;
|
|
6
|
-
subtotalPayment?: CartLine;
|
|
5
|
+
subtotal?: CartLine | null;
|
|
6
|
+
subtotalPayment?: CartLine | null;
|
|
7
7
|
subtotalDetails?: CartLine[];
|
|
8
8
|
total: CartLine;
|
|
9
9
|
totalDetails?: CartLine[];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { XpsFinance } from '../xps-finance.interface';
|
|
2
|
+
import { XpsPurchase } from '../xps-purchase.interface';
|
|
3
|
+
import { CartItem } from './cart-item.interface';
|
|
4
|
+
import { CartSummary } from './cart-summary.interface';
|
|
5
|
+
export interface FinanceDetails {
|
|
6
|
+
purchase?: XpsPurchase | null;
|
|
7
|
+
finance?: XpsFinance | null;
|
|
8
|
+
cartItems: CartItem[] | null;
|
|
9
|
+
cartSummary: CartSummary;
|
|
10
|
+
paymentCountry: string;
|
|
11
|
+
}
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import { EmitDataService } from '../emit-data.service.abstract';
|
|
2
|
+
import { Status } from '../status/status.interface';
|
|
2
3
|
import { XpsSummary } from '../xps-summary.interface';
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
4
|
+
import { FinanceDetails } from './finance-details.interface';
|
|
5
|
+
import { StatusFinanceDetailsAdapterService } from './status/status-finance-details-adapter.service';
|
|
6
|
+
import { SummaryFinanceDetailsAdapterService } from './summary/summary-finance-details-adapter.service';
|
|
7
|
+
import { SessionService } from '../../session/session.service';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
6
9
|
export declare class FinanceDetailsService extends EmitDataService<FinanceDetails> {
|
|
7
|
-
private readonly
|
|
8
|
-
|
|
9
|
-
|
|
10
|
+
private readonly sessionService;
|
|
11
|
+
private readonly summaryFinanceDetailsAdapterService;
|
|
12
|
+
private readonly statusFinanceDetailsAdapterService;
|
|
13
|
+
private readonly purchaseSessionKey;
|
|
14
|
+
constructor(sessionService: SessionService, summaryFinanceDetailsAdapterService: SummaryFinanceDetailsAdapterService, statusFinanceDetailsAdapterService: StatusFinanceDetailsAdapterService);
|
|
15
|
+
emitWithSummary(summary?: XpsSummary): void;
|
|
16
|
+
emitWithStatus(status?: Status): void;
|
|
10
17
|
static ɵfac: i0.ɵɵFactoryDeclaration<FinanceDetailsService, never>;
|
|
11
18
|
static ɵprov: i0.ɵɵInjectableDeclaration<FinanceDetailsService>;
|
|
12
19
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Price } from './price.interface';
|
|
2
2
|
export declare function extractMoneyCurrency<T>(money: (T & {
|
|
3
|
-
amount
|
|
4
|
-
currency
|
|
3
|
+
amount?: null | number;
|
|
4
|
+
currency?: string;
|
|
5
5
|
}) | undefined, allowZero?: boolean): Price;
|
|
6
|
-
export declare function createPriceOrUndefined(amount: number | undefined | null, currency: string): Price | undefined;
|
|
6
|
+
export declare function createPriceOrUndefined(amount: number | undefined | null, currency: string | undefined): Price | undefined;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const fieldsWithCurrency: Set<string>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Status } from '../../status/status.interface';
|
|
2
|
+
import { FinanceDetails } from '../finance-details.interface';
|
|
3
|
+
import { XpsPurchase } from '../../xps-purchase.interface';
|
|
4
|
+
import { SummaryFinanceDetailsAdapterService } from '../summary/summary-finance-details-adapter.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class StatusFinanceDetailsAdapterService {
|
|
7
|
+
private readonly summarFinanceDetailsAdapterService;
|
|
8
|
+
constructor(summarFinanceDetailsAdapterService: SummaryFinanceDetailsAdapterService);
|
|
9
|
+
getFinanceDetails(status: Status, purchase: XpsPurchase | null): FinanceDetails;
|
|
10
|
+
private fillFinanceInfo;
|
|
11
|
+
private addAmountAndCurrencyToField;
|
|
12
|
+
private getCartItems;
|
|
13
|
+
private convertStatusFinanceToSummaryFinance;
|
|
14
|
+
private getCartSummary;
|
|
15
|
+
private getTotal;
|
|
16
|
+
private getSubtotalPayment;
|
|
17
|
+
private getInitialCurrencySubtotal;
|
|
18
|
+
private getTotalDetails;
|
|
19
|
+
private getSubtotalDetails;
|
|
20
|
+
private getTaxesForSubtotalDetails;
|
|
21
|
+
private getVatNotIncludingKeyDetails;
|
|
22
|
+
private getVatNotIncludingTitleDetails;
|
|
23
|
+
private getVatIncludingKeyDetails;
|
|
24
|
+
private geVatIncludingTitleDetails;
|
|
25
|
+
private isGhana;
|
|
26
|
+
private isIndia;
|
|
27
|
+
private getTransactionDetails;
|
|
28
|
+
private getPercents;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<StatusFinanceDetailsAdapterService, never>;
|
|
30
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<StatusFinanceDetailsAdapterService>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { XpsSummary } from '../../xps-summary.interface';
|
|
2
|
+
import { FinanceDetails } from '../finance-details.interface';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SummaryFinanceDetailsAdapterService {
|
|
5
|
+
getFinanceDetails(summary: XpsSummary): FinanceDetails;
|
|
6
|
+
private shouldShowZeroIndirectTaxRate;
|
|
7
|
+
private isSalesTaxes;
|
|
8
|
+
private getCartItems;
|
|
9
|
+
private getCartSummary;
|
|
10
|
+
private getPaymentCountry;
|
|
11
|
+
private getTaxForItem;
|
|
12
|
+
private getSubtotalDetails;
|
|
13
|
+
private getTaxesForSubtotalDetails;
|
|
14
|
+
private getVatLabelForSubtotalDetails;
|
|
15
|
+
private getTaxesForTotalDetails;
|
|
16
|
+
private getVatNotIncludingKeyForDetails;
|
|
17
|
+
private getVatIncludingKeyForDetails;
|
|
18
|
+
private getVatLabelForTotalDetails;
|
|
19
|
+
private isIndia;
|
|
20
|
+
private isGhana;
|
|
21
|
+
private isDefaultImage;
|
|
22
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SummaryFinanceDetailsAdapterService, never>;
|
|
23
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SummaryFinanceDetailsAdapterService>;
|
|
24
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare enum VatDetailsKey {
|
|
2
|
+
vat = "vat",
|
|
3
|
+
vatPercent = "vat-percent",
|
|
4
|
+
vatIncluding = "vat-including",
|
|
5
|
+
vatPercentIncluding = "vat-percent-including",
|
|
6
|
+
vatIndia = "vat-india",
|
|
7
|
+
vatIndiaPercent = "vat-india-percent",
|
|
8
|
+
vatIndiaIncluding = "vat-india-including",
|
|
9
|
+
vatIndiaPercentIncluding = "vat-india-percent-including",
|
|
10
|
+
vatGhana = "vat-ghana",
|
|
11
|
+
vatGhanaIncluding = "vat-ghana-including"
|
|
12
|
+
}
|
|
@@ -4,7 +4,7 @@ import { NextAction } from './actions/next-action.interface';
|
|
|
4
4
|
import { Status } from './status/status.interface';
|
|
5
5
|
import { Field } from './field.interface';
|
|
6
6
|
import { ControlConfig } from './form/controls/control-config';
|
|
7
|
-
import { FinanceDetails } from './finance-details/finance-details.
|
|
7
|
+
import { FinanceDetails } from './finance-details/finance-details.interface';
|
|
8
8
|
import { InputEventName } from './form/input-event.enum';
|
|
9
9
|
import { FormFieldsStatus } from './form/form-fields-status.interface';
|
|
10
10
|
import { FormState } from './form/form-state.interface';
|
|
@@ -9,7 +9,7 @@ import { StatusService } from './status/status.service';
|
|
|
9
9
|
import { NextActionService } from './actions/next-action.service';
|
|
10
10
|
import { ControlConfig } from './form/controls/control-config';
|
|
11
11
|
import { ControlConfigService } from './form/controls/control-config.service';
|
|
12
|
-
import { FinanceDetails } from './finance-details/finance-details.
|
|
12
|
+
import { FinanceDetails } from './finance-details/finance-details.interface';
|
|
13
13
|
import { FinanceDetailsService } from './finance-details/finance-details.service';
|
|
14
14
|
import { NextAction } from './actions/next-action.interface';
|
|
15
15
|
import { Field } from './field.interface';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { StatusFinanceInfo } from './status-finance-info.interface';
|
|
2
|
+
import { StatusOrder } from './status-order.interface';
|
|
3
3
|
import { StatusEnum } from './status.enum';
|
|
4
4
|
import { TitleClass } from './title-class.enum';
|
|
5
5
|
import { WebSocketClientType } from './web-socket-client-type.enum';
|
|
@@ -11,9 +11,7 @@ export interface Status {
|
|
|
11
11
|
webSocketUrl: string;
|
|
12
12
|
webSocketChannelName: string;
|
|
13
13
|
webSocketClientType: WebSocketClientType;
|
|
14
|
-
financeInfo:
|
|
15
|
-
[key: string]: FinanceInfoField;
|
|
16
|
-
};
|
|
14
|
+
financeInfo: StatusFinanceInfo;
|
|
17
15
|
isCancelUser: boolean;
|
|
18
16
|
backUrlSettings: {
|
|
19
17
|
backUrl: string;
|
|
@@ -48,15 +46,5 @@ export interface Status {
|
|
|
48
46
|
isSuccess?: boolean;
|
|
49
47
|
isCanceled?: boolean;
|
|
50
48
|
paymentCountryIso: string;
|
|
51
|
-
order?:
|
|
52
|
-
lineitems?: LineItem[];
|
|
53
|
-
shipping?: {
|
|
54
|
-
currency: string;
|
|
55
|
-
amount: number;
|
|
56
|
-
};
|
|
57
|
-
contained_taxes?: {
|
|
58
|
-
sales_tax?: boolean;
|
|
59
|
-
user_vat?: boolean;
|
|
60
|
-
};
|
|
61
|
-
};
|
|
49
|
+
order?: StatusOrder;
|
|
62
50
|
}
|
|
@@ -4,13 +4,15 @@ import { ListenStatusService } from './listen-status/listen-status.service';
|
|
|
4
4
|
import { Status } from './status.interface';
|
|
5
5
|
import { NextActionService } from '../actions/next-action.service';
|
|
6
6
|
import { UrlService } from '../../url/url.service';
|
|
7
|
+
import { FinanceDetailsService } from '../finance-details/finance-details.service';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
9
|
export declare class StatusService {
|
|
9
10
|
private readonly urlService;
|
|
10
11
|
private readonly statusRequestService;
|
|
12
|
+
private readonly financeDetailsService;
|
|
11
13
|
private readonly listenStatusService;
|
|
12
14
|
private readonly nextActionService;
|
|
13
|
-
constructor(urlService: UrlService, statusRequestService: StatusRequestService, listenStatusService: ListenStatusService, nextActionService: NextActionService);
|
|
15
|
+
constructor(urlService: UrlService, statusRequestService: StatusRequestService, financeDetailsService: FinanceDetailsService, listenStatusService: ListenStatusService, nextActionService: NextActionService);
|
|
14
16
|
getStatus(params: StatusRequestParams): Promise<Status>;
|
|
15
17
|
getStatusWithUrlSearchParams(url?: string): Promise<Status>;
|
|
16
18
|
private getRequestParamsFromUrl;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ExtendedWindow } from '../extended-window.interface';
|
|
2
|
+
import { SettingsService } from '../settings/settings.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class SessionService {
|
|
5
|
+
private readonly window;
|
|
6
|
+
private readonly settingsService;
|
|
7
|
+
private cache;
|
|
8
|
+
constructor(window: ExtendedWindow, settingsService: SettingsService);
|
|
9
|
+
/**
|
|
10
|
+
* @param {string} key must be uniq entire all app
|
|
11
|
+
* @param {unknown} value can be anything
|
|
12
|
+
*/
|
|
13
|
+
set(key: string, value: unknown): void;
|
|
14
|
+
get<T>(key: string): T | null;
|
|
15
|
+
private getStorageKey;
|
|
16
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<SessionService, never>;
|
|
17
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<SessionService>;
|
|
18
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isNull(value: unknown): value is null;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function isUndefined(value: unknown): value is undefined;
|
|
@@ -24,6 +24,7 @@ import { CreditCard } from './core/credit-card/credit-card.interface';
|
|
|
24
24
|
import { CreditCardStateService } from './core/payment/credit-card-state/credit-card-state.service';
|
|
25
25
|
import { Observable } from 'rxjs';
|
|
26
26
|
import { CreditCardState } from './core/payment/credit-card-state/credit-card-state.interface';
|
|
27
|
+
import { FinanceDetails } from './core/payment/finance-details/finance-details.interface';
|
|
27
28
|
import * as i0 from "@angular/core";
|
|
28
29
|
export declare class CoreLibraryService {
|
|
29
30
|
private readonly settingsService;
|
|
@@ -53,6 +54,7 @@ export declare class CoreLibraryService {
|
|
|
53
54
|
getCountry(): string;
|
|
54
55
|
createPayment(config: PaymentConfig): Payment;
|
|
55
56
|
getCreditCardService(): CreditCard;
|
|
57
|
+
get financeDetailsUpdates$(): Observable<FinanceDetails>;
|
|
56
58
|
get cardTypeUpdates$(): Observable<CreditCardState>;
|
|
57
59
|
getLegalComponentConfig(): LegalComponentConfig;
|
|
58
60
|
getFieldMask(field: Field): undefined | (() => string);
|
package/package.json
CHANGED
|
Binary file
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* default image for purchase item is set on Publisher Account side.
|
|
3
|
-
* for purchase checkout items the image url is converted into base64 string.
|
|
4
|
-
* to determine default image fixed templates are used
|
|
5
|
-
*/
|
|
6
|
-
export const defaultImagePatterns = [
|
|
7
|
-
/^data:image\/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAAAAADmVT4XAAACMUlEQVR4Ae3YgYqdMBSE4fP/,
|
|
8
|
-
/virtual_item_default_image/,
|
|
9
|
-
];
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1pbWFnZS1wYXR0ZXJucy5jb25zdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3BheW1lbnQtY2xpZW50LWNvcmUvc3JjL2xpYi9jb3JlL3BheW1lbnQvZmluYW5jZS1kZXRhaWxzL2RlZmF1bHQtaW1hZ2UtcGF0dGVybnMuY29uc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHO0lBQ2xDLGlHQUFpRztJQUNqRyw0QkFBNEI7Q0FDN0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogZGVmYXVsdCBpbWFnZSBmb3IgcHVyY2hhc2UgaXRlbSBpcyBzZXQgb24gUHVibGlzaGVyIEFjY291bnQgc2lkZS5cbiAqIGZvciBwdXJjaGFzZSBjaGVja291dCBpdGVtcyB0aGUgaW1hZ2UgdXJsIGlzIGNvbnZlcnRlZCBpbnRvIGJhc2U2NCBzdHJpbmcuXG4gKiB0byBkZXRlcm1pbmUgZGVmYXVsdCBpbWFnZSBmaXhlZCB0ZW1wbGF0ZXMgYXJlIHVzZWRcbiAqL1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRJbWFnZVBhdHRlcm5zID0gW1xuICAvXmRhdGE6aW1hZ2VcXC9wbmc7YmFzZTY0LGlWQk9SdzBLR2dvQUFBQU5TVWhFVWdBQUFJQUFBQUNBQ0FBQUFBRG1WVDRYQUFBQ01VbEVRVlI0QWUzWWdZcWRNQlNFNGZQLyxcbiAgL3ZpcnR1YWxfaXRlbV9kZWZhdWx0X2ltYWdlLyxcbl07XG4iXX0=
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
import { FinanceDetails } from './finance-details.class';
|
|
3
|
-
export const financeDetailsResponseFactoryToken = new InjectionToken('FinanceDetails');
|
|
4
|
-
export const financeDetailsResponseFactoryProvider = {
|
|
5
|
-
provide: financeDetailsResponseFactoryToken,
|
|
6
|
-
useValue: (...args) => new FinanceDetails(...args),
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jZS1kZXRhaWxzLXJlc3BvbnNlLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLXJlc3BvbnNlLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVF6RCxNQUFNLENBQUMsTUFBTSxrQ0FBa0MsR0FDN0MsSUFBSSxjQUFjLENBQWdDLGdCQUFnQixDQUFDLENBQUM7QUFFdEUsTUFBTSxDQUFDLE1BQU0scUNBQXFDLEdBQWtCO0lBQ2xFLE9BQU8sRUFBRSxrQ0FBa0M7SUFDM0MsUUFBUSxFQUFFLENBQUMsR0FBRyxJQUF3QixFQUFFLEVBQUUsQ0FBQyxJQUFJLGNBQWMsQ0FBQyxHQUFHLElBQUksQ0FBQztDQUN2RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIFZhbHVlUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbmFuY2VEZXRhaWxzIH0gZnJvbSAnLi9maW5hbmNlLWRldGFpbHMuY2xhc3MnO1xuXG50eXBlIFJlc3BvbnNlUGFyYW1ldGVycyA9IENvbnN0cnVjdG9yUGFyYW1ldGVyczx0eXBlb2YgRmluYW5jZURldGFpbHM+O1xuXG5leHBvcnQgdHlwZSBGaW5hbmNlRGV0YWlsc1Jlc3BvbnNlRmFjdG9yeSA9IChcbiAgLi4uYXJnczogUmVzcG9uc2VQYXJhbWV0ZXJzXG4pID0+IEZpbmFuY2VEZXRhaWxzO1xuXG5leHBvcnQgY29uc3QgZmluYW5jZURldGFpbHNSZXNwb25zZUZhY3RvcnlUb2tlbjogSW5qZWN0aW9uVG9rZW48RmluYW5jZURldGFpbHNSZXNwb25zZUZhY3Rvcnk+ID1cbiAgbmV3IEluamVjdGlvblRva2VuPEZpbmFuY2VEZXRhaWxzUmVzcG9uc2VGYWN0b3J5PignRmluYW5jZURldGFpbHMnKTtcblxuZXhwb3J0IGNvbnN0IGZpbmFuY2VEZXRhaWxzUmVzcG9uc2VGYWN0b3J5UHJvdmlkZXI6IFZhbHVlUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IGZpbmFuY2VEZXRhaWxzUmVzcG9uc2VGYWN0b3J5VG9rZW4sXG4gIHVzZVZhbHVlOiAoLi4uYXJnczogUmVzcG9uc2VQYXJhbWV0ZXJzKSA9PiBuZXcgRmluYW5jZURldGFpbHMoLi4uYXJncyksXG59O1xuIl19
|
|
@@ -1,237 +0,0 @@
|
|
|
1
|
-
import { defaultImagePatterns } from './default-image-patterns.const';
|
|
2
|
-
import { createPriceOrUndefined, extractMoneyCurrency } from './price.helpers';
|
|
3
|
-
export class FinanceDetails {
|
|
4
|
-
get shouldShowZeroIndirectTaxRate() {
|
|
5
|
-
return !!(this.finance?.vat?.visible || this.finance?.vat_user?.visible);
|
|
6
|
-
}
|
|
7
|
-
get isSalesTaxes() {
|
|
8
|
-
return !!(this.finance?.sales_tax?.amount || this.finance?.sales_tax_user?.amount);
|
|
9
|
-
}
|
|
10
|
-
constructor(parameters) {
|
|
11
|
-
this.purchase = parameters.purchase;
|
|
12
|
-
this.finance = parameters.finance;
|
|
13
|
-
this.cartItems = this.getFormattedPurchaseForCart();
|
|
14
|
-
this.cartSummary = this.getFormattedPricingForCart();
|
|
15
|
-
this.paymentCountry = this.getPaymentCountry();
|
|
16
|
-
}
|
|
17
|
-
getFormattedPurchaseForCart() {
|
|
18
|
-
const checkouts = this.purchase.checkout_items?.map((item) => {
|
|
19
|
-
return {
|
|
20
|
-
imgSrc: item.image_url,
|
|
21
|
-
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
22
|
-
title: item.name,
|
|
23
|
-
price: extractMoneyCurrency(item, false),
|
|
24
|
-
priceBeforeDiscount: createPriceOrUndefined(item.amount_before_discount, item.currency),
|
|
25
|
-
quantity: item.quantity,
|
|
26
|
-
description: item.description,
|
|
27
|
-
tax: this.getTaxForItem(item.indirect_tax_rate),
|
|
28
|
-
isBonus: item.is_bonus,
|
|
29
|
-
};
|
|
30
|
-
});
|
|
31
|
-
const virtualCurrencies = this.purchase.virtual_currency?.map((item) => {
|
|
32
|
-
return {
|
|
33
|
-
imgSrc: item.image_url,
|
|
34
|
-
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
35
|
-
title: `${item.quantity} ${item.name}`,
|
|
36
|
-
price: extractMoneyCurrency(item),
|
|
37
|
-
description: item.description,
|
|
38
|
-
isBonus: item.is_bonus,
|
|
39
|
-
};
|
|
40
|
-
});
|
|
41
|
-
const virtualItems = this.purchase.virtual_items?.map((item) => {
|
|
42
|
-
return {
|
|
43
|
-
imgSrc: item.image_url,
|
|
44
|
-
hasDefaultImg: this.isDefaultImage(item.image_url),
|
|
45
|
-
title: item.name,
|
|
46
|
-
price: extractMoneyCurrency(item),
|
|
47
|
-
description: item.description,
|
|
48
|
-
quantity: item.quantity,
|
|
49
|
-
isBonus: item.is_bonus,
|
|
50
|
-
};
|
|
51
|
-
});
|
|
52
|
-
let checkoutArray = undefined;
|
|
53
|
-
if (this.purchase.checkout) {
|
|
54
|
-
checkoutArray = [
|
|
55
|
-
{
|
|
56
|
-
key: 'checkout',
|
|
57
|
-
title: this.purchase.checkout.description,
|
|
58
|
-
price: extractMoneyCurrency(this.purchase.checkout),
|
|
59
|
-
isBonus: this.purchase.checkout.is_bonus ?? false,
|
|
60
|
-
},
|
|
61
|
-
];
|
|
62
|
-
}
|
|
63
|
-
return [
|
|
64
|
-
...(checkouts ?? []),
|
|
65
|
-
...(virtualCurrencies ?? []),
|
|
66
|
-
...(virtualItems ?? []),
|
|
67
|
-
...(checkoutArray ?? []),
|
|
68
|
-
];
|
|
69
|
-
}
|
|
70
|
-
getFormattedPricingForCart() {
|
|
71
|
-
// subtotal details fields
|
|
72
|
-
const subtotalDetailsSorting = [
|
|
73
|
-
{
|
|
74
|
-
key: 'discount',
|
|
75
|
-
responseKey: 'discount',
|
|
76
|
-
title: 'Discount',
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
key: 'fee',
|
|
80
|
-
responseKey: 'fee',
|
|
81
|
-
title: 'Payment system fee',
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
key: 'user-balance',
|
|
85
|
-
responseKey: 'user_balance',
|
|
86
|
-
title: 'Balance',
|
|
87
|
-
},
|
|
88
|
-
];
|
|
89
|
-
return {
|
|
90
|
-
subtotal: {
|
|
91
|
-
title: 'Subtotal',
|
|
92
|
-
money: createPriceOrUndefined(this.finance.sub_total.amount, this.finance.sub_total.currency),
|
|
93
|
-
},
|
|
94
|
-
subtotalPayment: {
|
|
95
|
-
title: '',
|
|
96
|
-
money: createPriceOrUndefined(this.finance.sub_total.payment_amount, this.finance.sub_total.payment_currency),
|
|
97
|
-
},
|
|
98
|
-
total: {
|
|
99
|
-
title: 'Total',
|
|
100
|
-
money: extractMoneyCurrency(this.finance.total),
|
|
101
|
-
},
|
|
102
|
-
totalDetails: this.getTaxesForTotalDetails(),
|
|
103
|
-
subtotalDetails: [
|
|
104
|
-
...subtotalDetailsSorting.map((sorting) => {
|
|
105
|
-
const field = this.finance[sorting.responseKey];
|
|
106
|
-
if (field) {
|
|
107
|
-
return {
|
|
108
|
-
key: sorting.key,
|
|
109
|
-
title: sorting.title,
|
|
110
|
-
money: {
|
|
111
|
-
amount: sorting.key === 'discount' && field.amount
|
|
112
|
-
? -field.amount
|
|
113
|
-
: field.amount,
|
|
114
|
-
currency: field.currency,
|
|
115
|
-
},
|
|
116
|
-
};
|
|
117
|
-
}
|
|
118
|
-
return sorting;
|
|
119
|
-
}),
|
|
120
|
-
...this.getTaxesForSubtotalDetails(),
|
|
121
|
-
],
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
getPaymentCountry() {
|
|
125
|
-
return this.finance.payment_country.iso;
|
|
126
|
-
}
|
|
127
|
-
getTaxForItem(indirectTaxRate) {
|
|
128
|
-
if (indirectTaxRate ||
|
|
129
|
-
(this.shouldShowZeroIndirectTaxRate && indirectTaxRate === 0)) {
|
|
130
|
-
if (this.isSalesTaxes) {
|
|
131
|
-
return {
|
|
132
|
-
key: 'sales-tax',
|
|
133
|
-
content: `Sales tax ${indirectTaxRate}%`,
|
|
134
|
-
rate: indirectTaxRate,
|
|
135
|
-
};
|
|
136
|
-
}
|
|
137
|
-
if (this.isIndia()) {
|
|
138
|
-
return {
|
|
139
|
-
key: 'vat-india',
|
|
140
|
-
content: `GST ${indirectTaxRate}%`,
|
|
141
|
-
rate: indirectTaxRate,
|
|
142
|
-
};
|
|
143
|
-
}
|
|
144
|
-
if (this.isGhana()) {
|
|
145
|
-
return {
|
|
146
|
-
key: 'vat-ghana',
|
|
147
|
-
content: 'VAT, NHIL, GETFund Levy, and Covid-19 Levy',
|
|
148
|
-
rate: indirectTaxRate,
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
return {
|
|
152
|
-
key: 'vat',
|
|
153
|
-
content: `VAT ${indirectTaxRate}%`,
|
|
154
|
-
rate: indirectTaxRate,
|
|
155
|
-
};
|
|
156
|
-
}
|
|
157
|
-
return null;
|
|
158
|
-
}
|
|
159
|
-
getTaxesForSubtotalDetails() {
|
|
160
|
-
const ret = [];
|
|
161
|
-
// subtotal. VAT %p
|
|
162
|
-
if (this.finance.vat_user &&
|
|
163
|
-
(this.finance?.vat_user?.amount ?? this.finance?.vat_user?.visible)) {
|
|
164
|
-
ret.push({
|
|
165
|
-
key: this.getVatKeyForDetails(),
|
|
166
|
-
title: this.getVatLabelForSubtotalDetails(),
|
|
167
|
-
money: extractMoneyCurrency(this.finance.vat_user),
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
if (this.finance.sales_tax_user?.amount) {
|
|
171
|
-
ret.push({
|
|
172
|
-
key: 'sales-tax',
|
|
173
|
-
title: 'Sales tax',
|
|
174
|
-
money: extractMoneyCurrency(this.finance.sales_tax_user),
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
return ret;
|
|
178
|
-
}
|
|
179
|
-
getVatLabelForSubtotalDetails() {
|
|
180
|
-
if (this.isIndia()) {
|
|
181
|
-
return `GST ${this.finance.vat_user?.percent ?? ''}%`;
|
|
182
|
-
}
|
|
183
|
-
if (this.isGhana()) {
|
|
184
|
-
return `VAT, NHIL, GETFund Levy, and Covid-19 Levy`;
|
|
185
|
-
}
|
|
186
|
-
return `VAT ${this.finance.vat_user?.percent ?? ''}%`;
|
|
187
|
-
}
|
|
188
|
-
getTaxesForTotalDetails() {
|
|
189
|
-
const ret = [];
|
|
190
|
-
// for totalDetails. VAT
|
|
191
|
-
if ((this.finance?.vat?.amount || this.finance?.vat?.visible) &&
|
|
192
|
-
!this.finance?.vat_user?.amount) {
|
|
193
|
-
ret.push({
|
|
194
|
-
key: this.getVatKeyForDetails(),
|
|
195
|
-
title: this.getVatLabelForTotalDetails(),
|
|
196
|
-
money: extractMoneyCurrency(this.finance.vat),
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
if (this.finance?.sales_tax?.amount &&
|
|
200
|
-
!this.finance?.sales_tax_user?.amount) {
|
|
201
|
-
ret.push({
|
|
202
|
-
key: 'sales-tax',
|
|
203
|
-
title: 'Sales tax included',
|
|
204
|
-
money: extractMoneyCurrency(this.finance.sales_tax),
|
|
205
|
-
});
|
|
206
|
-
}
|
|
207
|
-
return ret;
|
|
208
|
-
}
|
|
209
|
-
getVatKeyForDetails() {
|
|
210
|
-
if (this.isIndia()) {
|
|
211
|
-
return 'vat-india';
|
|
212
|
-
}
|
|
213
|
-
if (this.isGhana()) {
|
|
214
|
-
return 'vat-ghana';
|
|
215
|
-
}
|
|
216
|
-
return 'vat';
|
|
217
|
-
}
|
|
218
|
-
getVatLabelForTotalDetails() {
|
|
219
|
-
if (this.isIndia()) {
|
|
220
|
-
return `Including ${this.finance.vat.percent}% GST`;
|
|
221
|
-
}
|
|
222
|
-
if (this.isGhana()) {
|
|
223
|
-
return 'Including VAT, NHIL, GETFund Levy, and Covid-19 Levy';
|
|
224
|
-
}
|
|
225
|
-
return `Including ${this.finance.vat.percent}% VAT`;
|
|
226
|
-
}
|
|
227
|
-
isIndia() {
|
|
228
|
-
return this.finance?.payment_country.iso === 'IN';
|
|
229
|
-
}
|
|
230
|
-
isGhana() {
|
|
231
|
-
return this.finance?.payment_country.iso === 'GH';
|
|
232
|
-
}
|
|
233
|
-
isDefaultImage(url) {
|
|
234
|
-
return defaultImagePatterns.some((regex) => regex.test(url));
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmluYW5jZS1kZXRhaWxzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcGF5bWVudC1jbGllbnQtY29yZS9zcmMvbGliL2NvcmUvcGF5bWVudC9maW5hbmNlLWRldGFpbHMvZmluYW5jZS1kZXRhaWxzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRy9FLE1BQU0sT0FBTyxjQUFjO0lBT3pCLElBQVksNkJBQTZCO1FBQ3ZDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFRCxJQUFZLFlBQVk7UUFDdEIsT0FBTyxDQUFDLENBQUMsQ0FDUCxJQUFJLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxDQUN4RSxDQUFDO0lBQ0osQ0FBQztJQUVELFlBQW1CLFVBR2xCO1FBQ0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUNsQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDckQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRU8sMkJBQTJC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QUFDO1NBQ3BCO1FBRUQsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU8sMEJBQTBCO1FBQ2hDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLE9BQU8sQ0FBQztTQUNyRDtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2xCLE9BQU8sc0RBQXNELENBQUM7U0FDL0Q7UUFFRCxPQUFPLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxPQUFPLENBQUM7SUFDdEQsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVPLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVPLGNBQWMsQ0FBQyxHQUFXO1FBQ2hDLE9BQU8sb0JBQW9CLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWHBzRmluYW5jZSB9IGZyb20gJy4uL3hwcy1maW5hbmNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBYcHNQdXJjaGFzZSB9IGZyb20gJy4uL3hwcy1wdXJjaGFzZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydEl0ZW0gfSBmcm9tICcuL2NhcnQtaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydExpbmUgfSBmcm9tICcuL2NhcnQtbGluZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2FydFN1bW1hcnkgfSBmcm9tICcuL2NhcnQtc3VtbWFyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgZGVmYXVsdEltYWdlUGF0dGVybnMgfSBmcm9tICcuL2RlZmF1bHQtaW1hZ2UtcGF0dGVybnMuY29uc3QnO1xuaW1wb3J0IHsgY3JlYXRlUHJpY2VPclVuZGVmaW5lZCwgZXh0cmFjdE1vbmV5Q3VycmVuY3kgfSBmcm9tICcuL3ByaWNlLmhlbHBlcnMnO1xuaW1wb3J0IHsgUHJpY2UgfSBmcm9tICcuL3ByaWNlLmludGVyZmFjZSc7XG5cbmV4cG9ydCBjbGFzcyBGaW5hbmNlRGV0YWlscyB7XG4gIHB1YmxpYyByZWFkb25seSBwdXJjaGFzZTogWHBzUHVyY2hhc2U7XG4gIHB1YmxpYyByZWFkb25seSBmaW5hbmNlOiBYcHNGaW5hbmNlO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FydEl0ZW1zOiBDYXJ0SXRlbVtdO1xuICBwdWJsaWMgcmVhZG9ubHkgY2FydFN1bW1hcnk6IENhcnRTdW1tYXJ5O1xuICBwdWJsaWMgcmVhZG9ubHkgcGF5bWVudENvdW50cnk6IHN0cmluZztcblxuICBwcml2YXRlIGdldCBzaG91bGRTaG93WmVyb0luZGlyZWN0VGF4UmF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISEodGhpcy5maW5hbmNlPy52YXQ/LnZpc2libGUgfHwgdGhpcy5maW5hbmNlPy52YXRfdXNlcj8udmlzaWJsZSk7XG4gIH1cblxuICBwcml2YXRlIGdldCBpc1NhbGVzVGF4ZXMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhKFxuICAgICAgdGhpcy5maW5hbmNlPy5zYWxlc190YXg/LmFtb3VudCB8fCB0aGlzLmZpbmFuY2U/LnNhbGVzX3RheF91c2VyPy5hbW91bnRcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKHBhcmFtZXRlcnM6IHtcbiAgICBwdXJjaGFzZTogWHBzUHVyY2hhc2U7XG4gICAgZmluYW5jZTogWHBzRmluYW5jZTtcbiAgfSkge1xuICAgIHRoaXMucHVyY2hhc2UgPSBwYXJhbWV0ZXJzLnB1cmNoYXNlO1xuICAgIHRoaXMuZmluYW5jZSA9IHBhcmFtZXRlcnMuZmluYW5jZTtcbiAgICB0aGlzLmNhcnRJdGVtcyA9IHRoaXMuZ2V0Rm9ybWF0dGVkUHVyY2hhc2VGb3JDYXJ0KCk7XG4gICAgdGhpcy5jYXJ0U3VtbWFyeSA9IHRoaXMuZ2V0Rm9ybWF0dGVkUHJpY2luZ0ZvckNhcnQoKTtcbiAgICB0aGlzLnBheW1lbnRDb3VudHJ5ID0gdGhpcy5nZXRQYXltZW50Q291bnRyeSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGb3JtYXR0ZWRQdXJjaGFzZUZvckNhcnQoKTogQ2FydEl0ZW1bXSB7XG4gICAgY29uc3QgY2hlY2tvdXRzOiBDYXJ0SXRlbVtdIHwgdW5kZWZpbmVkID0gdGhpcy5wdXJjaGFzZS5jaGVja291dF9pdGVtcz8ubWFwKFxuICAgICAgKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWdTcmM6IGl0ZW0uaW1hZ2VfdXJsLFxuICAgICAgICAgIGhhc0RlZmF1bHRJbWc6IHRoaXMuaXNEZWZhdWx0SW1hZ2UoaXRlbS5pbWFnZV91cmwpLFxuICAgICAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXG4gICAgICAgICAgcHJpY2U6IGV4dHJhY3RNb25leUN1cnJlbmN5KGl0ZW0sIGZhbHNlKSxcbiAgICAgICAgICBwcmljZUJlZm9yZURpc2NvdW50OiBjcmVhdGVQcmljZU9yVW5kZWZpbmVkKFxuICAgICAgICAgICAgaXRlbS5hbW91bnRfYmVmb3JlX2Rpc2NvdW50LFxuICAgICAgICAgICAgaXRlbS5jdXJyZW5jeVxuICAgICAgICAgICksXG4gICAgICAgICAgcXVhbnRpdHk6IGl0ZW0ucXVhbnRpdHksXG4gICAgICAgICAgZGVzY3JpcHRpb246IGl0ZW0uZGVzY3JpcHRpb24sXG4gICAgICAgICAgdGF4OiB0aGlzLmdldFRheEZvckl0ZW0oaXRlbS5pbmRpcmVjdF90YXhfcmF0ZSksXG4gICAgICAgICAgaXNCb251czogaXRlbS5pc19ib251cyxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICApO1xuXG4gICAgY29uc3QgdmlydHVhbEN1cnJlbmNpZXM6IENhcnRJdGVtW10gfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5wdXJjaGFzZS52aXJ0dWFsX2N1cnJlbmN5Py5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWdTcmM6IGl0ZW0uaW1hZ2VfdXJsLFxuICAgICAgICAgIGhhc0RlZmF1bHRJbWc6IHRoaXMuaXNEZWZhdWx0SW1hZ2UoaXRlbS5pbWFnZV91cmwpLFxuICAgICAgICAgIHRpdGxlOiBgJHtpdGVtLnF1YW50aXR5fSAke2l0ZW0ubmFtZX1gLFxuICAgICAgICAgIHByaWNlOiBleHRyYWN0TW9uZXlDdXJyZW5jeShpdGVtKSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogaXRlbS5kZXNjcmlwdGlvbixcbiAgICAgICAgICBpc0JvbnVzOiBpdGVtLmlzX2JvbnVzLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICBjb25zdCB2aXJ0dWFsSXRlbXM6IENhcnRJdGVtW10gfCB1bmRlZmluZWQgPVxuICAgICAgdGhpcy5wdXJjaGFzZS52aXJ0dWFsX2l0ZW1zPy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBpbWdTcmM6IGl0ZW0uaW1hZ2VfdXJsLFxuICAgICAgICAgIGhhc0RlZmF1bHRJbWc6IHRoaXMuaXNEZWZhdWx0SW1hZ2UoaXRlbS5pbWFnZV91cmwpLFxuICAgICAgICAgIHRpdGxlOiBpdGVtLm5hbWUsXG4gICAgICAgICAgcHJpY2U6IGV4dHJhY3RNb25leUN1cnJlbmN5KGl0ZW0pLFxuICAgICAgICAgIGRlc2NyaXB0aW9uOiBpdGVtLmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHF1YW50aXR5OiBpdGVtLnF1YW50aXR5LFxuICAgICAgICAgIGlzQm9udXM6IGl0ZW0uaXNfYm9udXMsXG4gICAgICAgIH07XG4gICAgICB9KTtcblxuICAgIGxldCBjaGVja291dEFycmF5OiBDYXJ0SXRlbVtdIHwgdW5kZWZpbmVkID0gdW5kZWZpbmVkO1xuICAgIGlmICh0aGlzLnB1cmNoYXNlLmNoZWNrb3V0KSB7XG4gICAgICBjaGVja291dEFycmF5ID0gW1xuICAgICAgICB7XG4gICAgICAgICAga2V5OiAnY2hlY2tvdXQnLFxuICAgICAgICAgIHRpdGxlOiB0aGlzLnB1cmNoYXNlLmNoZWNrb3V0LmRlc2NyaXB0aW9uLFxuICAgICAgICAgIHByaWNlOiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLnB1cmNoYXNlLmNoZWNrb3V0KSxcbiAgICAgICAgICBpc0JvbnVzOiB0aGlzLnB1cmNoYXNlLmNoZWNrb3V0LmlzX2JvbnVzID8/IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgXTtcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4uKGNoZWNrb3V0cyA/PyBbXSksXG4gICAgICAuLi4odmlydHVhbEN1cnJlbmNpZXMgPz8gW10pLFxuICAgICAgLi4uKHZpcnR1YWxJdGVtcyA/PyBbXSksXG4gICAgICAuLi4oY2hlY2tvdXRBcnJheSA/PyBbXSksXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Rm9ybWF0dGVkUHJpY2luZ0ZvckNhcnQoKTogQ2FydFN1bW1hcnkge1xuICAgIC8vIHN1YnRvdGFsIGRldGFpbHMgZmllbGRzXG4gICAgY29uc3Qgc3VidG90YWxEZXRhaWxzU29ydGluZyA9IFtcbiAgICAgIHtcbiAgICAgICAga2V5OiAnZGlzY291bnQnLFxuICAgICAgICByZXNwb25zZUtleTogJ2Rpc2NvdW50JyxcbiAgICAgICAgdGl0bGU6ICdEaXNjb3VudCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBrZXk6ICdmZWUnLFxuICAgICAgICByZXNwb25zZUtleTogJ2ZlZScsXG4gICAgICAgIHRpdGxlOiAnUGF5bWVudCBzeXN0ZW0gZmVlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGtleTogJ3VzZXItYmFsYW5jZScsXG4gICAgICAgIHJlc3BvbnNlS2V5OiAndXNlcl9iYWxhbmNlJyxcbiAgICAgICAgdGl0bGU6ICdCYWxhbmNlJyxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiB7XG4gICAgICBzdWJ0b3RhbDoge1xuICAgICAgICB0aXRsZTogJ1N1YnRvdGFsJyxcbiAgICAgICAgbW9uZXk6IGNyZWF0ZVByaWNlT3JVbmRlZmluZWQoXG4gICAgICAgICAgdGhpcy5maW5hbmNlLnN1Yl90b3RhbC5hbW91bnQsXG4gICAgICAgICAgdGhpcy5maW5hbmNlLnN1Yl90b3RhbC5jdXJyZW5jeVxuICAgICAgICApLFxuICAgICAgfSxcbiAgICAgIHN1YnRvdGFsUGF5bWVudDoge1xuICAgICAgICB0aXRsZTogJycsXG4gICAgICAgIG1vbmV5OiBjcmVhdGVQcmljZU9yVW5kZWZpbmVkKFxuICAgICAgICAgIHRoaXMuZmluYW5jZS5zdWJfdG90YWwucGF5bWVudF9hbW91bnQsXG4gICAgICAgICAgdGhpcy5maW5hbmNlLnN1Yl90b3RhbC5wYXltZW50X2N1cnJlbmN5XG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgdG90YWw6IHtcbiAgICAgICAgdGl0bGU6ICdUb3RhbCcsXG4gICAgICAgIG1vbmV5OiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLmZpbmFuY2UudG90YWwpLFxuICAgICAgfSxcbiAgICAgIHRvdGFsRGV0YWlsczogdGhpcy5nZXRUYXhlc0ZvclRvdGFsRGV0YWlscygpLFxuICAgICAgc3VidG90YWxEZXRhaWxzOiBbXG4gICAgICAgIC4uLnN1YnRvdGFsRGV0YWlsc1NvcnRpbmcubWFwKChzb3J0aW5nKSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGQgPSAodGhpcy5maW5hbmNlIGFzIHVua25vd24gYXMgeyBba2V5OiBzdHJpbmddOiB1bmtub3duIH0pW1xuICAgICAgICAgICAgc29ydGluZy5yZXNwb25zZUtleVxuICAgICAgICAgIF0gYXMgUHJpY2U7XG5cbiAgICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIGtleTogc29ydGluZy5rZXksXG4gICAgICAgICAgICAgIHRpdGxlOiBzb3J0aW5nLnRpdGxlLFxuICAgICAgICAgICAgICBtb25leToge1xuICAgICAgICAgICAgICAgIGFtb3VudDpcbiAgICAgICAgICAgICAgICAgIHNvcnRpbmcua2V5ID09PSAnZGlzY291bnQnICYmIGZpZWxkLmFtb3VudFxuICAgICAgICAgICAgICAgICAgICA/IC1maWVsZC5hbW91bnRcbiAgICAgICAgICAgICAgICAgICAgOiBmaWVsZC5hbW91bnQsXG4gICAgICAgICAgICAgICAgY3VycmVuY3k6IGZpZWxkLmN1cnJlbmN5LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHNvcnRpbmc7XG4gICAgICAgIH0pLFxuICAgICAgICAuLi50aGlzLmdldFRheGVzRm9yU3VidG90YWxEZXRhaWxzKCksXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldFBheW1lbnRDb3VudHJ5KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZmluYW5jZS5wYXltZW50X2NvdW50cnkuaXNvO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUYXhGb3JJdGVtKGluZGlyZWN0VGF4UmF0ZTogbnVtYmVyIHwgdW5kZWZpbmVkKTogQ2FydExpbmUgfCBudWxsIHtcbiAgICBpZiAoXG4gICAgICBpbmRpcmVjdFRheFJhdGUgfHxcbiAgICAgICh0aGlzLnNob3VsZFNob3daZXJvSW5kaXJlY3RUYXhSYXRlICYmIGluZGlyZWN0VGF4UmF0ZSA9PT0gMClcbiAgICApIHtcbiAgICAgIGlmICh0aGlzLmlzU2FsZXNUYXhlcykge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogJ3NhbGVzLXRheCcsXG4gICAgICAgICAgY29udGVudDogYFNhbGVzIHRheCAke2luZGlyZWN0VGF4UmF0ZX0lYCxcbiAgICAgICAgICByYXRlOiBpbmRpcmVjdFRheFJhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzSW5kaWEoKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogJ3ZhdC1pbmRpYScsXG4gICAgICAgICAgY29udGVudDogYEdTVCAke2luZGlyZWN0VGF4UmF0ZX0lYCxcbiAgICAgICAgICByYXRlOiBpbmRpcmVjdFRheFJhdGUsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmlzR2hhbmEoKSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGtleTogJ3ZhdC1naGFuYScsXG4gICAgICAgICAgY29udGVudDogJ1ZBVCwgTkhJTCwgR0VURnVuZCBMZXZ5LCBhbmQgQ292aWQtMTkgTGV2eScsXG4gICAgICAgICAgcmF0ZTogaW5kaXJlY3RUYXhSYXRlLFxuICAgICAgICB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBrZXk6ICd2YXQnLFxuICAgICAgICBjb250ZW50OiBgVkFUICR7aW5kaXJlY3RUYXhSYXRlfSVgLFxuICAgICAgICByYXRlOiBpbmRpcmVjdFRheFJhdGUsXG4gICAgICB9O1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGF4ZXNGb3JTdWJ0b3RhbERldGFpbHMoKTogQ2FydExpbmVbXSB7XG4gICAgY29uc3QgcmV0ID0gW107XG5cbiAgICAvLyBzdWJ0b3RhbC4gVkFUICVwXG4gICAgaWYgKFxuICAgICAgdGhpcy5maW5hbmNlLnZhdF91c2VyICYmXG4gICAgICAodGhpcy5maW5hbmNlPy52YXRfdXNlcj8uYW1vdW50ID8/IHRoaXMuZmluYW5jZT8udmF0X3VzZXI/LnZpc2libGUpXG4gICAgKSB7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGtleTogdGhpcy5nZXRWYXRLZXlGb3JEZXRhaWxzKCksXG4gICAgICAgIHRpdGxlOiB0aGlzLmdldFZhdExhYmVsRm9yU3VidG90YWxEZXRhaWxzKCksXG4gICAgICAgIG1vbmV5OiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLmZpbmFuY2UudmF0X3VzZXIpLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuZmluYW5jZS5zYWxlc190YXhfdXNlcj8uYW1vdW50KSB7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGtleTogJ3NhbGVzLXRheCcsXG4gICAgICAgIHRpdGxlOiAnU2FsZXMgdGF4JyxcbiAgICAgICAgbW9uZXk6IGV4dHJhY3RNb25leUN1cnJlbmN5KHRoaXMuZmluYW5jZS5zYWxlc190YXhfdXNlciksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXRMYWJlbEZvclN1YnRvdGFsRGV0YWlscygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSW5kaWEoKSkge1xuICAgICAgcmV0dXJuIGBHU1QgJHt0aGlzLmZpbmFuY2UudmF0X3VzZXI/LnBlcmNlbnQgPz8gJyd9JWA7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHaGFuYSgpKSB7XG4gICAgICByZXR1cm4gYFZBVCwgTkhJTCwgR0VURnVuZCBMZXZ5LCBhbmQgQ292aWQtMTkgTGV2eWA7XG4gICAgfVxuXG4gICAgcmV0dXJuIGBWQVQgJHt0aGlzLmZpbmFuY2UudmF0X3VzZXI/LnBlcmNlbnQgPz8gJyd9JWA7XG4gIH1cblxuICBwcml2YXRlIGdldFRheGVzRm9yVG90YWxEZXRhaWxzKCk6IENhcnRMaW5lW10ge1xuICAgIGNvbnN0IHJldCA9IFtdO1xuXG4gICAgLy8gZm9yIHRvdGFsRGV0YWlscy4gVkFUXG4gICAgaWYgKFxuICAgICAgKHRoaXMuZmluYW5jZT8udmF0Py5hbW91bnQgfHwgdGhpcy5maW5hbmNlPy52YXQ/LnZpc2libGUpICYmXG4gICAgICAhdGhpcy5maW5hbmNlPy52YXRfdXNlcj8uYW1vdW50XG4gICAgKSB7XG4gICAgICByZXQucHVzaCh7XG4gICAgICAgIGtleTogdGhpcy5nZXRWYXRLZXlGb3JEZXRhaWxzKCksXG4gICAgICAgIHRpdGxlOiB0aGlzLmdldFZhdExhYmVsRm9yVG90YWxEZXRhaWxzKCksXG4gICAgICAgIG1vbmV5OiBleHRyYWN0TW9uZXlDdXJyZW5jeSh0aGlzLmZpbmFuY2UudmF0KSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHRoaXMuZmluYW5jZT8uc2FsZXNfdGF4Py5hbW91bnQgJiZcbiAgICAgICF0aGlzLmZpbmFuY2U/LnNhbGVzX3RheF91c2VyPy5hbW91bnRcbiAgICApIHtcbiAgICAgIHJldC5wdXNoKHtcbiAgICAgICAga2V5OiAnc2FsZXMtdGF4JyxcbiAgICAgICAgdGl0bGU6ICdTYWxlcyB0YXggaW5jbHVkZWQnLFxuICAgICAgICBtb25leTogZXh0cmFjdE1vbmV5Q3VycmVuY3kodGhpcy5maW5hbmNlLnNhbGVzX3RheCksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXRLZXlGb3JEZXRhaWxzKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNJbmRpYSgpKSB7XG4gICAgICByZXR1cm4gJ3ZhdC1pbmRpYSc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNHaGFuYSgpKSB7XG4gICAgICByZXR1cm4gJ3ZhdC1naGFuYSc7XG4gICAgfVxuXG4gICAgcmV0dXJuICd2YXQnO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRWYXRMYWJlbEZvclRvdGFsRGV0YWlscygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzSW5kaWEoKSkge1xuICAgICAgcmV0dXJuIGBJbmNsdWRpbmcgJHt0aGlzLmZpbmFuY2UudmF0LnBlcmNlbnR9JSBHU1RgO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzR2hhbmEoKSkge1xuICAgICAgcmV0dXJuICdJbmNsdWRpbmcgVkFULCBOSElMLCBHRVRGdW5kIExldnksIGFuZCBDb3ZpZC0xOSBMZXZ5JztcbiAgICB9XG5cbiAgICByZXR1cm4gYEluY2x1ZGluZyAke3RoaXMuZmluYW5jZS52YXQucGVyY2VudH0lIFZBVGA7XG4gIH1cblxuICBwcml2YXRlIGlzSW5kaWEoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZmluYW5jZT8ucGF5bWVudF9jb3VudHJ5LmlzbyA9PT0gJ0lOJztcbiAgfVxuXG4gIHByaXZhdGUgaXNHaGFuYSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maW5hbmNlPy5wYXltZW50X2NvdW50cnkuaXNvID09PSAnR0gnO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0RlZmF1bHRJbWFnZSh1cmw6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBkZWZhdWx0SW1hZ2VQYXR0ZXJucy5zb21lKChyZWdleCkgPT4gcmVnZXgudGVzdCh1cmwpKTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import { InjectionToken, ValueProvider } from '@angular/core';
|
|
2
|
-
import { FinanceDetails } from './finance-details.class';
|
|
3
|
-
type ResponseParameters = ConstructorParameters<typeof FinanceDetails>;
|
|
4
|
-
export type FinanceDetailsResponseFactory = (...args: ResponseParameters) => FinanceDetails;
|
|
5
|
-
export declare const financeDetailsResponseFactoryToken: InjectionToken<FinanceDetailsResponseFactory>;
|
|
6
|
-
export declare const financeDetailsResponseFactoryProvider: ValueProvider;
|
|
7
|
-
export {};
|