@osovitny/anatoly 3.17.160 → 3.19.1
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/fesm2022/osovitny-anatoly.mjs +553 -522
- package/fesm2022/osovitny-anatoly.mjs.map +1 -1
- package/lib/billing/utils.d.ts +2 -1
- package/lib/core/converts/convert.d.ts +1 -1
- package/lib/core/guid.d.ts +1 -1
- package/lib/core/is.d.ts +5 -5
- package/lib/ui/components/base/components/component.d.ts +1 -1
- package/lib/ui/components/base/components/edit.component.d.ts +1 -1
- package/lib/ui/components/base/components/enum-edit.component.d.ts +1 -1
- package/lib/ui/components/data-grid/control-panel.component.d.ts +6 -5
- package/lib/ui/components/dropdownlists/country/country.dropdownlist.d.ts +1 -3
- package/lib/ui/directives/index.d.ts +1 -1
- package/lib/ui/directives/replacer/replacer.base.directive.d.ts +1 -1
- package/package.json +58 -60
- package/esm2022/lib/anatoly.module.mjs +0 -62
- package/esm2022/lib/billing/billing.module.mjs +0 -81
- package/esm2022/lib/billing/components/buttons/buyaccess-button.component.mjs +0 -104
- package/esm2022/lib/billing/components/buttons/subscribe-plan-button.component.mjs +0 -113
- package/esm2022/lib/billing/components/exports.mjs +0 -28
- package/esm2022/lib/billing/components/index.mjs +0 -31
- package/esm2022/lib/billing/components/order-summary/order-summary.component.mjs +0 -154
- package/esm2022/lib/billing/components/payment-methods/payment-methods.component.mjs +0 -106
- package/esm2022/lib/billing/components/payment-options/payment-options.component.mjs +0 -97
- package/esm2022/lib/billing/components/pm/braintree/braintree.component.mjs +0 -155
- package/esm2022/lib/billing/components/pm/paypal/paypal-button.component.mjs +0 -159
- package/esm2022/lib/billing/components/pm/paypal/paypal-subscribe-button.component.mjs +0 -149
- package/esm2022/lib/billing/components/pm/paypal/paypal.component.mjs +0 -317
- package/esm2022/lib/billing/components/pm/stripe/stripe.component.mjs +0 -109
- package/esm2022/lib/billing/exports.mjs +0 -19
- package/esm2022/lib/billing/models/paypal-models.mjs +0 -16
- package/esm2022/lib/billing/services/payments.service.mjs +0 -170
- package/esm2022/lib/billing/services/paypal-script.service.mjs +0 -90
- package/esm2022/lib/billing/utils.mjs +0 -28
- package/esm2022/lib/core/browser.mjs +0 -24
- package/esm2022/lib/core/consts/app-settings.mjs +0 -55
- package/esm2022/lib/core/consts/core-settings.mjs +0 -29
- package/esm2022/lib/core/consts/formats.mjs +0 -27
- package/esm2022/lib/core/consts/ga.mjs +0 -26
- package/esm2022/lib/core/consts/storageKeys.mjs +0 -23
- package/esm2022/lib/core/converts/convert.mjs +0 -103
- package/esm2022/lib/core/converts/dateConvert.mjs +0 -60
- package/esm2022/lib/core/converts/tz/tzParseTimezone.mjs +0 -122
- package/esm2022/lib/core/converts/tz/tzTokenizeDate.mjs +0 -101
- package/esm2022/lib/core/converts/xmlFormatter.mjs +0 -34
- package/esm2022/lib/core/core.module.mjs +0 -112
- package/esm2022/lib/core/dom.mjs +0 -153
- package/esm2022/lib/core/enums/billing.mjs +0 -56
- package/esm2022/lib/core/enums/enums.mjs +0 -35
- package/esm2022/lib/core/enums/index.mjs +0 -17
- package/esm2022/lib/core/exports.mjs +0 -67
- package/esm2022/lib/core/go/apps-go.service.mjs +0 -88
- package/esm2022/lib/core/go/go.service.mjs +0 -86
- package/esm2022/lib/core/guards/once-import.guard.mjs +0 -21
- package/esm2022/lib/core/guards/starter.guard.mjs +0 -46
- package/esm2022/lib/core/guid.mjs +0 -22
- package/esm2022/lib/core/interceptors/httpInterceptor.mjs +0 -161
- package/esm2022/lib/core/is.mjs +0 -98
- package/esm2022/lib/core/localization/localization.module.mjs +0 -45
- package/esm2022/lib/core/localization/localization.service.mjs +0 -164
- package/esm2022/lib/core/localization/localize.pipe.mjs +0 -83
- package/esm2022/lib/core/localization/settings.module.mjs +0 -103
- package/esm2022/lib/core/localization/utils.mjs +0 -41
- package/esm2022/lib/core/logging/globalErrorHandler.mjs +0 -41
- package/esm2022/lib/core/logging/logging.service.mjs +0 -40
- package/esm2022/lib/core/models/qs.mjs +0 -17
- package/esm2022/lib/core/notifications/alerts.mjs +0 -116
- package/esm2022/lib/core/notifications/interfaces/notification.mjs +0 -17
- package/esm2022/lib/core/notifications/services/notification-service.mjs +0 -83
- package/esm2022/lib/core/performance/stopwatch.mjs +0 -50
- package/esm2022/lib/core/services/appcontext.service.mjs +0 -186
- package/esm2022/lib/core/services/dm.service.mjs +0 -69
- package/esm2022/lib/core/services/google-analytics.service.mjs +0 -75
- package/esm2022/lib/core/services/idle.service.mjs +0 -77
- package/esm2022/lib/core/services/loading.service.mjs +0 -67
- package/esm2022/lib/core/services/script.service.mjs +0 -77
- package/esm2022/lib/core/services/starter.service.mjs +0 -85
- package/esm2022/lib/core/services/web-storage.service.mjs +0 -66
- package/esm2022/lib/core/subs.mjs +0 -31
- package/esm2022/lib/core/utils/qsutils.mjs +0 -84
- package/esm2022/lib/core/utils/utils.mjs +0 -112
- package/esm2022/lib/data/base/api.service.mjs +0 -94
- package/esm2022/lib/data/base/grid/grid-edit.service.mjs +0 -80
- package/esm2022/lib/data/base/grid/grid-read.service.mjs +0 -60
- package/esm2022/lib/data/data.module.mjs +0 -66
- package/esm2022/lib/data/exports.mjs +0 -29
- package/esm2022/lib/data/services/billing/currencies-api.service.mjs +0 -41
- package/esm2022/lib/data/services/billing/currencies-storage.service.mjs +0 -92
- package/esm2022/lib/data/services/billing/discountcodes-api.service.mjs +0 -37
- package/esm2022/lib/data/services/billing/payments-api.service.mjs +0 -64
- package/esm2022/lib/data/services/billing/subscriptions-api.service.mjs +0 -61
- package/esm2022/lib/data/services/billing/transactions-api.service.mjs +0 -43
- package/esm2022/lib/data/services/core-api.service.mjs +0 -44
- package/esm2022/lib/data/services/emails-api.service.mjs +0 -47
- package/esm2022/lib/external/fa.module.mjs +0 -45
- package/esm2022/lib/external/kendo.module.mjs +0 -179
- package/esm2022/lib/iam/b2c/b2c.mjs +0 -40
- package/esm2022/lib/iam/b2c/consts.mjs +0 -25
- package/esm2022/lib/iam/b2c/index.mjs +0 -21
- package/esm2022/lib/iam/configs.mjs +0 -109
- package/esm2022/lib/iam/consts.mjs +0 -22
- package/esm2022/lib/iam/exports.mjs +0 -22
- package/esm2022/lib/iam/guards/admin.guard.mjs +0 -46
- package/esm2022/lib/iam/guards/authentication.guard.mjs +0 -30
- package/esm2022/lib/iam/guards/index.mjs +0 -20
- package/esm2022/lib/iam/iam-pages.module.mjs +0 -57
- package/esm2022/lib/iam/iam-pages.routes.mjs +0 -45
- package/esm2022/lib/iam/iam.module.mjs +0 -84
- package/esm2022/lib/iam/pages/signin.page.mjs +0 -40
- package/esm2022/lib/iam/pages/signout.page.mjs +0 -40
- package/esm2022/lib/iam/pages/signup.page.mjs +0 -40
- package/esm2022/lib/iam/redirect.mjs +0 -29
- package/esm2022/lib/iam/services/auth.service.mjs +0 -436
- package/esm2022/lib/iam/storage.mjs +0 -42
- package/esm2022/lib/iam/utils.mjs +0 -49
- package/esm2022/lib/ui/components/base/components/component.mjs +0 -76
- package/esm2022/lib/ui/components/base/components/edit.component.mjs +0 -146
- package/esm2022/lib/ui/components/base/components/enum-edit.component.mjs +0 -92
- package/esm2022/lib/ui/components/base/dialog.mjs +0 -71
- package/esm2022/lib/ui/components/base/list.mjs +0 -100
- package/esm2022/lib/ui/components/base/pages/edit.page.mjs +0 -32
- package/esm2022/lib/ui/components/base/pages/page.mjs +0 -32
- package/esm2022/lib/ui/components/base/pages/paged.page.mjs +0 -68
- package/esm2022/lib/ui/components/card/card-body.component.mjs +0 -37
- package/esm2022/lib/ui/components/card/card-footer.component.mjs +0 -37
- package/esm2022/lib/ui/components/card/card-header.component.mjs +0 -51
- package/esm2022/lib/ui/components/card/card.component.mjs +0 -41
- package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +0 -43
- package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +0 -57
- package/esm2022/lib/ui/components/data-grid/control-panel.component.mjs +0 -201
- package/esm2022/lib/ui/components/datapager/datapager.component.mjs +0 -95
- package/esm2022/lib/ui/components/dropdownlists/country/country.dropdownlist.mjs +0 -96
- package/esm2022/lib/ui/components/dropdownlists/moderationstatus/moderationstatus.dropdownlist.mjs +0 -88
- package/esm2022/lib/ui/components/dropdownlists/publishstatus/publishstatus.dropdownlist.mjs +0 -88
- package/esm2022/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.mjs +0 -112
- package/esm2022/lib/ui/components/exports.mjs +0 -53
- package/esm2022/lib/ui/components/feature-will-be-ready/feature-will-be-ready.component.mjs +0 -55
- package/esm2022/lib/ui/components/html-editor/base-editor.component.mjs +0 -94
- package/esm2022/lib/ui/components/html-editor/defaultoptions.mjs +0 -87
- package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +0 -114
- package/esm2022/lib/ui/components/identity/signin-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/identity/signout-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/identity/signup-button.component.mjs +0 -105
- package/esm2022/lib/ui/components/index.mjs +0 -57
- package/esm2022/lib/ui/components/no-mobile-support/no-mobile-support.component.mjs +0 -45
- package/esm2022/lib/ui/components/nodata/nodata.component.mjs +0 -76
- package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +0 -53
- package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +0 -85
- package/esm2022/lib/ui/components/spinners/pagespinner/spinkits.mjs +0 -12
- package/esm2022/lib/ui/components/urlslug/urlslug.component.mjs +0 -130
- package/esm2022/lib/ui/components/you-agree-to-our-terms/you-agree-to-our-terms.component.mjs +0 -63
- package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +0 -78
- package/esm2022/lib/ui/dialogs/exports.mjs +0 -16
- package/esm2022/lib/ui/dialogs/index.mjs +0 -19
- package/esm2022/lib/ui/directives/exports.mjs +0 -19
- package/esm2022/lib/ui/directives/hover.directive.mjs +0 -50
- package/esm2022/lib/ui/directives/index.mjs +0 -22
- package/esm2022/lib/ui/directives/native-element.directive.mjs +0 -37
- package/esm2022/lib/ui/directives/replacer/a-replacer.directive.mjs +0 -48
- package/esm2022/lib/ui/directives/replacer/image-replacer.directive.mjs +0 -44
- package/esm2022/lib/ui/directives/replacer/replacer.base.directive.mjs +0 -44
- package/esm2022/lib/ui/exports.mjs +0 -22
- package/esm2022/lib/ui/forms/components/address/address.component.mjs +0 -240
- package/esm2022/lib/ui/forms/components/company/company.component.mjs +0 -138
- package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +0 -213
- package/esm2022/lib/ui/forms/exports.mjs +0 -20
- package/esm2022/lib/ui/forms/index.mjs +0 -21
- package/esm2022/lib/ui/pipes/exports.mjs +0 -19
- package/esm2022/lib/ui/pipes/filesize.pipe.mjs +0 -42
- package/esm2022/lib/ui/pipes/index.mjs +0 -22
- package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +0 -37
- package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +0 -34
- package/esm2022/lib/ui/ui.module.mjs +0 -122
- package/esm2022/lib/ui/validation/exports.mjs +0 -19
- package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +0 -90
- package/esm2022/lib/ui/validation/index.mjs +0 -21
- package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +0 -53
- package/esm2022/lib/ui/validation/validation-summary.component.mjs +0 -124
- package/esm2022/osovitny-anatoly.mjs +0 -5
- package/esm2022/public-api.mjs +0 -22
|
@@ -1,170 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Dhruv Agarwal dhruv.agarwal@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
11 Aug 2024
|
|
12
|
-
|
|
13
|
-
Details:
|
|
14
|
-
https://blog.thoughtram.io/angular/2017/02/21/using-zones-in-angular-for-better-performance.html
|
|
15
|
-
|
|
16
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
17
|
-
</file>
|
|
18
|
-
*/
|
|
19
|
-
//Node
|
|
20
|
-
import { Injectable } from '@angular/core';
|
|
21
|
-
import { Subject } from 'rxjs';
|
|
22
|
-
//App
|
|
23
|
-
import { GABillingEvents } from '../../core/consts/ga';
|
|
24
|
-
import { PaymentMethod, PaymentStage } from '../../core/enums/billing';
|
|
25
|
-
import * as i0 from "@angular/core";
|
|
26
|
-
import * as i1 from "../../data/services/billing/payments-api.service";
|
|
27
|
-
import * as i2 from "../../core/notifications/services/notification-service";
|
|
28
|
-
import * as i3 from "../../core/services/google-analytics.service";
|
|
29
|
-
export class PaymentsService {
|
|
30
|
-
constructor(zone, api, ns, ga) {
|
|
31
|
-
this.zone = zone;
|
|
32
|
-
this.api = api;
|
|
33
|
-
this.ns = ns;
|
|
34
|
-
this.ga = ga;
|
|
35
|
-
this.paymentInProgress = false;
|
|
36
|
-
this.isPaymentFailed = false;
|
|
37
|
-
this.subtotal = 0;
|
|
38
|
-
this.discountCode = null;
|
|
39
|
-
this.discountPercentage = null;
|
|
40
|
-
this.discountAmount = null;
|
|
41
|
-
this.total = 0;
|
|
42
|
-
this.currency = 'USD';
|
|
43
|
-
//Private Streams
|
|
44
|
-
this._discountCodeApplied = new Subject();
|
|
45
|
-
this._paymentAdded = new Subject();
|
|
46
|
-
this._showStripeDialog = new Subject();
|
|
47
|
-
this._showBraintreeDialog = new Subject();
|
|
48
|
-
//Public Streams
|
|
49
|
-
this.discountCodeApplied$ = this._discountCodeApplied.asObservable();
|
|
50
|
-
this.paymentAdded$ = this._paymentAdded.asObservable();
|
|
51
|
-
this.showStripeDialog$ = this._showStripeDialog.asObservable();
|
|
52
|
-
this.showBraintreeDialog$ = this._showBraintreeDialog.asObservable();
|
|
53
|
-
}
|
|
54
|
-
setDefaults() {
|
|
55
|
-
}
|
|
56
|
-
setValues() {
|
|
57
|
-
}
|
|
58
|
-
//fires
|
|
59
|
-
fireDiscountCodeApplied() {
|
|
60
|
-
this._discountCodeApplied.next(this.discountCode);
|
|
61
|
-
}
|
|
62
|
-
firePaymentAdded(paymentId) {
|
|
63
|
-
this._paymentAdded.next(paymentId);
|
|
64
|
-
}
|
|
65
|
-
//Public
|
|
66
|
-
init() {
|
|
67
|
-
this.setDefaults();
|
|
68
|
-
this.setValues();
|
|
69
|
-
}
|
|
70
|
-
resetState() {
|
|
71
|
-
this.subtotal = 0;
|
|
72
|
-
this.total = 0;
|
|
73
|
-
}
|
|
74
|
-
getTotal() {
|
|
75
|
-
let subtotal = this.subtotal;
|
|
76
|
-
if (this.discountAmount != 0) {
|
|
77
|
-
subtotal = subtotal - this.discountAmount;
|
|
78
|
-
}
|
|
79
|
-
else if (this.discountPercentage != 0) {
|
|
80
|
-
subtotal = subtotal - (subtotal * (this.discountPercentage / 100));
|
|
81
|
-
subtotal = +subtotal.toFixed(2);
|
|
82
|
-
}
|
|
83
|
-
return subtotal > 0 ? subtotal : 0;
|
|
84
|
-
}
|
|
85
|
-
//DiscountCode
|
|
86
|
-
applyDiscountCode(discountCode, data) {
|
|
87
|
-
if (!data) {
|
|
88
|
-
return;
|
|
89
|
-
}
|
|
90
|
-
this.discountCode = discountCode;
|
|
91
|
-
if (data.amount) {
|
|
92
|
-
this.discountPercentage = 0;
|
|
93
|
-
this.discountAmount = parseInt(data.amount);
|
|
94
|
-
}
|
|
95
|
-
else if (data.percentage) {
|
|
96
|
-
this.discountPercentage = parseInt(data.percentage);
|
|
97
|
-
this.discountAmount = 0;
|
|
98
|
-
}
|
|
99
|
-
this.fireDiscountCodeApplied();
|
|
100
|
-
}
|
|
101
|
-
getDiscountCodeAsString() {
|
|
102
|
-
if (this.discountAmount > 0) {
|
|
103
|
-
return "$" + this.discountAmount;
|
|
104
|
-
}
|
|
105
|
-
else if (this.discountPercentage > 0) {
|
|
106
|
-
return this.discountPercentage + "%";
|
|
107
|
-
}
|
|
108
|
-
return '$0';
|
|
109
|
-
}
|
|
110
|
-
openStripePaymentDialog() {
|
|
111
|
-
this._showStripeDialog.next(true);
|
|
112
|
-
}
|
|
113
|
-
openBraintreePaymentDialog() {
|
|
114
|
-
this._showBraintreeDialog.next(true);
|
|
115
|
-
}
|
|
116
|
-
closeBraintreePaymentDialog() {
|
|
117
|
-
this._showBraintreeDialog.next(false);
|
|
118
|
-
}
|
|
119
|
-
createStripeSession(title, description, image) {
|
|
120
|
-
const amount = this.getTotal();
|
|
121
|
-
const currency = this.currency;
|
|
122
|
-
return this.api.createStripeSession(amount, currency, title, description, image);
|
|
123
|
-
}
|
|
124
|
-
createBraintreeToken() {
|
|
125
|
-
return this.api.createBraintreeToken();
|
|
126
|
-
}
|
|
127
|
-
pay(paidFor, pmId, pmStatus, pmDetails) {
|
|
128
|
-
//GA
|
|
129
|
-
this.ga.event(GABillingEvents.payment);
|
|
130
|
-
let paymentMethod = this.selectedPaymentMethod;
|
|
131
|
-
let paidForAsString = JSON.stringify(paidFor);
|
|
132
|
-
let payType = this.selectedPaymentType;
|
|
133
|
-
//Amount
|
|
134
|
-
let subtotal = this.subtotal;
|
|
135
|
-
let promoCode = this.discountCode;
|
|
136
|
-
let total = this.getTotal();
|
|
137
|
-
let currency = this.currency;
|
|
138
|
-
if (total == 0) {
|
|
139
|
-
paymentMethod = PaymentMethod.None;
|
|
140
|
-
}
|
|
141
|
-
this.zone.run(() => {
|
|
142
|
-
this.api.pay(paymentMethod, paidForAsString,
|
|
143
|
-
//Amount
|
|
144
|
-
subtotal, promoCode, total, currency,
|
|
145
|
-
//Payment method details (PayPal/Stripe/Braintree)
|
|
146
|
-
pmId, pmStatus, pmDetails, (data) => {
|
|
147
|
-
if (!data || !data?.isPaymentValid) {
|
|
148
|
-
this.paymentFailed(PaymentStage.External);
|
|
149
|
-
return;
|
|
150
|
-
}
|
|
151
|
-
this.paymentInProgress = false;
|
|
152
|
-
this.firePaymentAdded(data.paymentId);
|
|
153
|
-
}, () => {
|
|
154
|
-
this.paymentFailed(PaymentStage.External);
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
}
|
|
158
|
-
paymentFailed(stage) {
|
|
159
|
-
this.paymentStage = stage;
|
|
160
|
-
this.paymentInProgress = false;
|
|
161
|
-
this.isPaymentFailed = true;
|
|
162
|
-
this.ns.error("Payment Failed");
|
|
163
|
-
}
|
|
164
|
-
static { this.ɵfac = function PaymentsService_Factory(t) { return new (t || PaymentsService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.PaymentsApiService), i0.ɵɵinject(i2.NotificationService), i0.ɵɵinject(i3.GoogleAnalyticsService)); }; }
|
|
165
|
-
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaymentsService, factory: PaymentsService.ɵfac }); }
|
|
166
|
-
}
|
|
167
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaymentsService, [{
|
|
168
|
-
type: Injectable
|
|
169
|
-
}], () => [{ type: i0.NgZone }, { type: i1.PaymentsApiService }, { type: i2.NotificationService }, { type: i3.GoogleAnalyticsService }], null); })();
|
|
170
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9iaWxsaW5nL3NlcnZpY2VzL3BheW1lbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsTUFBTTtBQUNOLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixLQUFLO0FBQ0wsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBTXZFLE1BQU0sT0FBTyxlQUFlO0lBMkIxQixZQUNVLElBQVksRUFDWixHQUF1QixFQUN2QixFQUF1QixFQUN2QixFQUEwQjtRQUgxQixTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osUUFBRyxHQUFILEdBQUcsQ0FBb0I7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBcUI7UUFDdkIsT0FBRSxHQUFGLEVBQUUsQ0FBd0I7UUE1QnBDLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUMxQixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUl4QixhQUFRLEdBQUcsQ0FBQyxDQUFDO1FBQ2IsaUJBQVksR0FBRyxJQUFJLENBQUM7UUFDcEIsdUJBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQzFCLG1CQUFjLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQUssR0FBRyxDQUFDLENBQUM7UUFDVixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGlCQUFpQjtRQUNULHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFDMUMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBTyxDQUFDO1FBQ25DLHNCQUFpQixHQUFH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QUFDO1FBRTVCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEMsQ0FBQztnRkFqTFUsZUFBZTt1RUFBZixlQUFlLFdBQWYsZUFBZTs7aUZBQWYsZUFBZTtjQUQzQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIERocnV2IEFnYXJ3YWwgZGhydXYuYWdhcndhbEBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDExIEF1ZyAyMDI0XHJcblxyXG4gIERldGFpbHM6XHJcbiAgICBodHRwczovL2Jsb2cudGhvdWdodHJhbS5pby9hbmd1bGFyLzIwMTcvMDIvMjEvdXNpbmctem9uZXMtaW4tYW5ndWxhci1mb3ItYmV0dGVyLXBlcmZvcm1hbmNlLmh0bWxcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEdBQmlsbGluZ0V2ZW50cyB9IGZyb20gJy4uLy4uL2NvcmUvY29uc3RzL2dhJztcclxuaW1wb3J0IHsgUGF5bWVudE1ldGhvZCwgUGF5bWVudFN0YWdlIH0gZnJvbSAnLi4vLi4vY29yZS9lbnVtcy9iaWxsaW5nJztcclxuaW1wb3J0IHsgUGF5bWVudHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGF0YS9zZXJ2aWNlcy9iaWxsaW5nL3BheW1lbnRzLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZSc7XHJcbmltcG9ydCB7IEdvb2dsZUFuYWx5dGljc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2dvb2dsZS1hbmFseXRpY3Muc2VydmljZSc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQYXltZW50c1NlcnZpY2Uge1xyXG4gIC8vUGF5bWVudFxyXG4gIHBheW1lbnRTdGFnZTtcclxuICBwYXltZW50SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gIGlzUGF5bWVudEZhaWxlZCA9IGZhbHNlO1xyXG5cclxuICBzZWxlY3RlZFBheW1lbnRUeXBlO1xyXG4gIHNlbGVjdGVkUGF5bWVudE1ldGhvZDtcclxuICBzdWJ0b3RhbCA9IDA7XHJcbiAgZGlzY291bnRDb2RlID0gbnVsbDtcclxuICBkaXNjb3VudFBlcmNlbnRhZ2UgPSBudWxsO1xyXG4gIGRpc2NvdW50QW1vdW50ID0gbnVsbDtcclxuICB0b3RhbCA9IDA7XHJcbiAgY3VycmVuY3kgPSAnVVNEJztcclxuXHJcbiAgLy9Qcml2YXRlIFN0cmVhbXNcclxuICBwcml2YXRlIF9kaXNjb3VudENvZGVBcHBsaWVkID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgX3BheW1lbnRBZGRlZCA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuICBwcml2YXRlIF9zaG93U3RyaXBlRGlhbG9nID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG4gIHByaXZhdGUgX3Nob3dCcmFpbnRyZWVEaWFsb2cgPSBuZXcgU3ViamVjdDxhbnk+KCk7XHJcblxyXG4gIC8vUHVibGljIFN0cmVhbXNcclxuICByZWFkb25seSBkaXNjb3VudENvZGVBcHBsaWVkJCA9IHRoaXMuX2Rpc2NvdW50Q29kZUFwcGxpZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgcGF5bWVudEFkZGVkJCA9IHRoaXMuX3BheW1lbnRBZGRlZC5hc09ic2VydmFibGUoKTtcclxuICByZWFkb25seSBzaG93U3RyaXBlRGlhbG9nJCA9IHRoaXMuX3Nob3dTdHJpcGVEaWFsb2cuYXNPYnNlcnZhYmxlKCk7XHJcbiAgcmVhZG9ubHkgc2hvd0JyYWludHJlZURpYWxvZyQgPSB0aGlzLl9zaG93QnJhaW50cmVlRGlhbG9nLmFzT2JzZXJ2YWJsZSgpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxyXG4gICAgcHJpdmF0ZSBhcGk6IFBheW1lbnRzQXBpU2VydmljZSxcclxuICAgIHByaXZhdGUgbnM6IE5vdGlmaWNhdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGdhOiBHb29nbGVBbmFseXRpY3NTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERlZmF1bHRzKCkge1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRWYWx1ZXMoKSB7XHJcbiAgfVxyXG5cclxuICAvL2ZpcmVzXHJcbiAgcHJpdmF0ZSBmaXJlRGlzY291bnRDb2RlQXBwbGllZCgpIHtcclxuICAgIHRoaXMuX2Rpc2NvdW50Q29kZUFwcGxpZWQubmV4dCh0aGlzLmRpc2NvdW50Q29kZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZpcmVQYXltZW50QWRkZWQocGF5bWVudElkKSB7XHJcbiAgICB0aGlzLl9wYXltZW50QWRkZWQubmV4dChwYXltZW50SWQpO1xyXG4gIH1cclxuXHJcbiAgLy9QdWJsaWNcclxuICBpbml0KCkge1xyXG4gICAgdGhpcy5zZXREZWZhdWx0cygpO1xyXG4gICAgdGhpcy5zZXRWYWx1ZXMoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0U3RhdGUoKSB7XHJcbiAgICB0aGlzLnN1YnRvdGFsID0gMDtcclxuICAgIHRoaXMudG90YWwgPSAwO1xyXG4gIH1cclxuXHJcbiAgZ2V0VG90YWwoKSB7XHJcbiAgICBsZXQgc3VidG90YWwgPSB0aGlzLnN1YnRvdGFsO1xyXG5cclxuICAgIGlmICh0aGlzLmRpc2NvdW50QW1vdW50ICE9IDApIHtcclxuICAgICAgc3VidG90YWwgPSBzdWJ0b3RhbCAtIHRoaXMuZGlzY291bnRBbW91bnQ7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmICh0aGlzLmRpc2NvdW50UGVyY2VudGFnZSAhPSAwKSB7XHJcbiAgICAgIHN1YnRvdGFsID0gc3VidG90YWwgLSAoc3VidG90YWwgKiAodGhpcy5kaXNjb3VudFBlcmNlbnRhZ2UgLyAxMDApKTtcclxuICAgICAgc3VidG90YWwgPSArc3VidG90YWwudG9GaXhlZCgyKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gc3VidG90YWwgPiAwID8gc3VidG90YWwgOiAwO1xyXG4gIH1cclxuXHJcbiAgLy9EaXNjb3VudENvZGVcclxuICBhcHBseURpc2NvdW50Q29kZShkaXNjb3VudENvZGUsIGRhdGEpIHtcclxuICAgIGlmICghZGF0YSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5kaXNjb3VudENvZGUgPSBkaXNjb3VudENvZGU7XHJcblxyXG4gICAgaWYgKGRhdGEuYW1vdW50KSB7XHJcbiAgICAgIHRoaXMuZGlzY291bnRQZXJjZW50YWdlID0gMDtcclxuICAgICAgdGhpcy5kaXNjb3VudEFtb3VudCA9IHBhcnNlSW50KGRhdGEuYW1vdW50KTtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGRhdGEucGVyY2VudGFnZSkge1xyXG4gICAgICB0aGlzLmRpc2NvdW50UGVyY2VudGFnZSA9IHBhcnNlSW50KGRhdGEucGVyY2VudGFnZSk7XHJcbiAgICAgIHRoaXMuZGlzY291bnRBbW91bnQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmlyZURpc2NvdW50Q29kZUFwcGxpZWQoKTtcclxuICB9XHJcblxyXG4gIGdldERpc2NvdW50Q29kZUFzU3RyaW5nKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5kaXNjb3VudEFtb3VudCA+IDApIHtcclxuICAgICAgcmV0dXJuIFwiJFwiICsgdGhpcy5kaXNjb3VudEFtb3VudDtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRoaXMuZGlzY291bnRQZXJjZW50YWdlID4gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNjb3VudFBlcmNlbnRhZ2UgKyBcIiVcIjtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyQwJztcclxuICB9XHJcblxyXG4gIG9wZW5TdHJpcGVQYXltZW50RGlhbG9nKCkge1xyXG4gICAgdGhpcy5fc2hvd1N0cmlwZURpYWxvZy5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkJyYWludHJlZVBheW1lbnREaWFsb2coKSB7XHJcbiAgICB0aGlzLl9zaG93QnJhaW50cmVlRGlhbG9nLm5leHQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBjbG9zZUJyYWludHJlZVBheW1lbnREaWFsb2coKSB7XHJcbiAgICB0aGlzLl9zaG93QnJhaW50cmVlRGlhbG9nLm5leHQoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlU3RyaXBlU2Vzc2lvbih0aXRsZSwgZGVzY3JpcHRpb24sIGltYWdlKSB7XHJcbiAgICBjb25zdCBhbW91bnQgPSB0aGlzLmdldFRvdGFsKCk7XHJcbiAgICBjb25zdCBjdXJyZW5jeSA9IHRoaXMuY3VycmVuY3k7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBpLmNyZWF0ZVN0cmlwZVNlc3Npb24oYW1vdW50LCBjdXJyZW5jeSwgdGl0bGUsIGRlc2NyaXB0aW9uLCBpbWFnZSk7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVCcmFpbnRyZWVUb2tlbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFwaS5jcmVhdGVCcmFpbnRyZWVUb2tlbigpO1xyXG4gIH1cclxuXHJcbiAgcGF5KHBhaWRGb3IsIHBtSWQsIHBtU3RhdHVzLCBwbURldGFpbHMpIHtcclxuICAgIC8vR0FcclxuICAgIHRoaXMuZ2EuZXZlbnQoR0FCaWxsaW5nRXZlbnRzLnBheW1lbnQpO1xyXG5cclxuICAgIGxldCBwYXltZW50TWV0aG9kID0gdGhpcy5zZWxlY3RlZFBheW1lbnRNZXRob2Q7XHJcbiAgICBsZXQgcGFpZEZvckFzU3RyaW5nID0gSlNPTi5zdHJpbmdpZnkocGFpZEZvcik7XHJcbiAgICBsZXQgcGF5VHlwZSA9IHRoaXMuc2VsZWN0ZWRQYXltZW50VHlwZTsgICAgXHJcblxyXG4gICAgLy9BbW91bnRcclxuICAgIGxldCBzdWJ0b3RhbCA9IHRoaXMuc3VidG90YWw7XHJcbiAgICBsZXQgcHJvbW9Db2RlID0gdGhpcy5kaXNjb3VudENvZGU7XHJcbiAgICBsZXQgdG90YWwgPSB0aGlzLmdldFRvdGFsKCk7XHJcbiAgICBsZXQgY3VycmVuY3kgPSB0aGlzLmN1cnJlbmN5O1xyXG5cclxuICAgIGlmICh0b3RhbCA9PSAwKSB7XHJcbiAgICAgIHBheW1lbnRNZXRob2QgPSBQYXltZW50TWV0aG9kLk5vbmU7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy56b25lLnJ1bigoKSA9PiB7XHJcbiAgICAgIHRoaXMuYXBpLnBheShcclxuICAgICAgICBwYXltZW50TWV0aG9kLCBwYWlkRm9yQXNTdHJpbmcsIFxyXG5cclxuICAgICAgICAvL0Ftb3VudFxyXG4gICAgICAgIHN1YnRvdGFsLCBwcm9tb0NvZGUsIHRvdGFsLCBjdXJyZW5jeSxcclxuXHJcbiAgICAgICAgLy9QYXltZW50IG1ldGhvZCBkZXRhaWxzIChQYXlQYWwvU3RyaXBlL0JyYWludHJlZSlcclxuICAgICAgICBwbUlkLCBwbVN0YXR1cywgcG1EZXRhaWxzLFxyXG5cclxuICAgICAgICAoZGF0YSkgPT4ge1xyXG4gICAgICAgICAgaWYgKCFkYXRhIHx8ICFkYXRhPy5pc1BheW1lbnRWYWxpZCkge1xyXG4gICAgICAgICAgICB0aGlzLnBheW1lbnRGYWlsZWQoUGF5bWVudFN0YWdlLkV4dGVybmFsKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHRoaXMucGF5bWVudEluUHJvZ3Jlc3MgPSBmYWxzZTtcclxuICAgICAgICAgIHRoaXMuZmlyZVBheW1lbnRBZGRlZChkYXRhLnBheW1lbnRJZCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBheW1lbnRGYWlsZWQoUGF5bWVudFN0YWdlLkV4dGVybmFsKTtcclxuICAgICAgICB9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcGF5bWVudEZhaWxlZChzdGFnZTogUGF5bWVudFN0YWdlKSB7XHJcbiAgICB0aGlzLnBheW1lbnRTdGFnZSA9IHN0YWdlO1xyXG4gICAgdGhpcy5wYXltZW50SW5Qcm9ncmVzcyA9IGZhbHNlO1xyXG4gICAgdGhpcy5pc1BheW1lbnRGYWlsZWQgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMubnMuZXJyb3IoXCJQYXltZW50IEZhaWxlZFwiKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
|
|
9
|
-
Created:
|
|
10
|
-
14 Jun 2024
|
|
11
|
-
|
|
12
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
13
|
-
</file>
|
|
14
|
-
*/
|
|
15
|
-
//Node
|
|
16
|
-
import { Injectable } from '@angular/core';
|
|
17
|
-
import * as i0 from "@angular/core";
|
|
18
|
-
import * as i1 from "../../core/services/script.service";
|
|
19
|
-
export class PayPalScriptService {
|
|
20
|
-
constructor(ss) {
|
|
21
|
-
this.ss = ss;
|
|
22
|
-
this.paypalWindowName = 'paypal';
|
|
23
|
-
}
|
|
24
|
-
registerPayPalScript(config, onReady) {
|
|
25
|
-
this.ss.registerScript(this.getUrlForConfig(config), this.paypalWindowName, onReady);
|
|
26
|
-
}
|
|
27
|
-
destroyPayPalScript() {
|
|
28
|
-
this.ss.cleanup(this.paypalWindowName);
|
|
29
|
-
}
|
|
30
|
-
getUrlForConfig(config) {
|
|
31
|
-
const params = [
|
|
32
|
-
{
|
|
33
|
-
name: 'client-id',
|
|
34
|
-
value: config.clientId
|
|
35
|
-
}
|
|
36
|
-
];
|
|
37
|
-
if (config.locale) {
|
|
38
|
-
params.push({
|
|
39
|
-
name: 'locale',
|
|
40
|
-
value: config.locale
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
if (config.currency) {
|
|
44
|
-
params.push({
|
|
45
|
-
name: 'currency',
|
|
46
|
-
value: config.currency
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
if (config.commit) {
|
|
50
|
-
params.push({
|
|
51
|
-
name: 'commit',
|
|
52
|
-
value: config.commit
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
if (config.vault) {
|
|
56
|
-
params.push({
|
|
57
|
-
name: 'vault',
|
|
58
|
-
value: config.vault
|
|
59
|
-
});
|
|
60
|
-
}
|
|
61
|
-
if (config.intent) {
|
|
62
|
-
params.push({
|
|
63
|
-
name: 'intent',
|
|
64
|
-
value: config.intent
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
if (config.funding) {
|
|
68
|
-
params.push({
|
|
69
|
-
name: 'components',
|
|
70
|
-
value: 'buttons,funding-eligibility'
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (config.extraParams) {
|
|
74
|
-
params.push(...config.extraParams);
|
|
75
|
-
}
|
|
76
|
-
if (config.debug) {
|
|
77
|
-
params.push({
|
|
78
|
-
name: 'debug',
|
|
79
|
-
value: config.debug ? 'true' : 'false'
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
return `https://www.paypal.com/sdk/js${this.ss.getQueryString(params)}`;
|
|
83
|
-
}
|
|
84
|
-
static { this.ɵfac = function PayPalScriptService_Factory(t) { return new (t || PayPalScriptService)(i0.ɵɵinject(i1.ScriptService)); }; }
|
|
85
|
-
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PayPalScriptService, factory: PayPalScriptService.ɵfac }); }
|
|
86
|
-
}
|
|
87
|
-
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PayPalScriptService, [{
|
|
88
|
-
type: Injectable
|
|
89
|
-
}], () => [{ type: i1.ScriptService }], null); })();
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5cGFsLXNjcmlwdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2JpbGxpbmcvc2VydmljZXMvcGF5cGFsLXNjcmlwdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7O0VBYUU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBUTNDLE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsWUFBc0IsRUFBaUI7UUFBakIsT0FBRSxHQUFGLEVBQUUsQ0FBZTtRQUZ0QixxQkFBZ0IsR0FBRyxRQUFRLENBQUM7SUFHN0MsQ0FBQztJQUVELG9CQUFvQixDQUFDLE1BQXdCLEVBQUUsT0FBaUM7UUFDOUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDdkYsQ0FBQztJQUVELG1CQUFtQjtRQUNqQixJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU8sZUFBZSxDQUFDLE1BQXdCO1FBQzlDLE1BQU0sTUFBTSxHQUFrQjtZQUMxQjtnQkFDSSxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLE1BQU0sQ0FBQyxRQUFRO2FBQ3pCO1NBQ0osQ0FBQztRQUVGLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xCLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNO2FBQ3ZCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNSLElBQUksRUFBRSxVQUFVO2dCQUNoQixLQUFLLEVBQUUsTUFBTSxDQUFDLFFBQVE7YUFDekIsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsS0FBSyxFQUFFLE1BQU0sQ0FBQyxNQUFNO2FBQ3ZCLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ1IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3RCLENBQUMsQ0FBQztRQUNQLENBQUM7UUFFRCxJQUFJLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNSLElBQUksRUFBRSxRQUFRO2dCQUNkLEtBQUssRUFBRSxNQUFNLENBQUMsTUFBTTthQUN2QixDQUFDLENBQUM7UUFDUCxDQUFDO1FBRUQsSUFBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDbEIsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDVixJQUFJLEVBQUMsWUFBWTtnQkFDakIsS0FBSyxFQUFFLDZCQUE2QjthQUNyQyxDQUFDLENBQUE7UUFDSixDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDUixJQUFJLEVBQUUsT0FBTztnQkFDYixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxPQUFPO2FBQ3pDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLGdDQUFnQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO0lBQzFFLENBQUM7b0ZBNUVVLG1CQUFtQjt1RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQjs7aUZBQW5CLG1CQUFtQjtjQUQvQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDE0IEp1biAyMDI0XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IElQYXlQYWxVcmxDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvcGF5cGFsLW1vZGVscyc7XHJcbmltcG9ydCB7IFNjcmlwdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3NjcmlwdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSVF1ZXJ5UGFyYW0gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9xcyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQYXlQYWxTY3JpcHRTZXJ2aWNlIHtcclxuICBwcml2YXRlIHJlYWRvbmx5IHBheXBhbFdpbmRvd05hbWUgPSAncGF5cGFsJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNzOiBTY3JpcHRTZXJ2aWNlKSB7XHJcbiAgfVxyXG5cclxuICByZWdpc3RlclBheVBhbFNjcmlwdChjb25maWc6IElQYXlQYWxVcmxDb25maWcsIG9uUmVhZHk6IChwYXlQYWxBcGk6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgdGhpcy5zcy5yZWdpc3RlclNjcmlwdCh0aGlzLmdldFVybEZvckNvbmZpZyhjb25maWcpLCB0aGlzLnBheXBhbFdpbmRvd05hbWUsIG9uUmVhZHkpO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBheVBhbFNjcmlwdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc3MuY2xlYW51cCh0aGlzLnBheXBhbFdpbmRvd05hbWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRVcmxGb3JDb25maWcoY29uZmlnOiBJUGF5UGFsVXJsQ29uZmlnKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IHBhcmFtczogSVF1ZXJ5UGFyYW1bXSA9IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIG5hbWU6ICdjbGllbnQtaWQnLFxyXG4gICAgICAgICAgICB2YWx1ZTogY29uZmlnLmNsaWVudElkXHJcbiAgICAgICAgfVxyXG4gICAgXTtcclxuXHJcbiAgICBpZiAoY29uZmlnLmxvY2FsZSkge1xyXG4gICAgICBwYXJhbXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiAnbG9jYWxlJyxcclxuICAgICAgICAgIHZhbHVlOiBjb25maWcubG9jYWxlXHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuY3VycmVuY3kpIHtcclxuICAgICAgICBwYXJhbXMucHVzaCh7XHJcbiAgICAgICAgICAgIG5hbWU6ICdjdXJyZW5jeScsXHJcbiAgICAgICAgICAgIHZhbHVlOiBjb25maWcuY3VycmVuY3lcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoY29uZmlnLmNvbW1pdCkge1xyXG4gICAgICAgIHBhcmFtcy5wdXNoKHtcclxuICAgICAgICAgICAgbmFtZTogJ2NvbW1pdCcsXHJcbiAgICAgICAgICAgIHZhbHVlOiBjb25maWcuY29tbWl0XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy52YXVsdCkge1xyXG4gICAgICAgIHBhcmFtcy5wdXNoKHtcclxuICAgICAgICAgICAgbmFtZTogJ3ZhdWx0JyxcclxuICAgICAgICAgICAgdmFsdWU6IGNvbmZpZy52YXVsdFxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChjb25maWcuaW50ZW50KSB7XHJcbiAgICAgICAgcGFyYW1zLnB1c2goe1xyXG4gICAgICAgICAgICBuYW1lOiAnaW50ZW50JyxcclxuICAgICAgICAgICAgdmFsdWU6IGNvbmZpZy5pbnRlbnRcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZihjb25maWcuZnVuZGluZykge1xyXG4gICAgICBwYXJhbXMucHVzaCh7XHJcbiAgICAgICAgbmFtZTonY29tcG9uZW50cycsXHJcbiAgICAgICAgdmFsdWU6ICdidXR0b25zLGZ1bmRpbmctZWxpZ2liaWxpdHknXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5leHRyYVBhcmFtcykge1xyXG4gICAgICAgIHBhcmFtcy5wdXNoKC4uLmNvbmZpZy5leHRyYVBhcmFtcyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNvbmZpZy5kZWJ1Zykge1xyXG4gICAgICBwYXJhbXMucHVzaCh7XHJcbiAgICAgICAgICBuYW1lOiAnZGVidWcnLFxyXG4gICAgICAgICAgdmFsdWU6IGNvbmZpZy5kZWJ1ZyA/ICd0cnVlJyA6ICdmYWxzZSdcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGBodHRwczovL3d3dy5wYXlwYWwuY29tL3Nkay9qcyR7dGhpcy5zcy5nZXRRdWVyeVN0cmluZyhwYXJhbXMpfWA7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
Atlas Cross
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Leon Malyan leon.malyan@osovitny.com
|
|
8
|
-
|
|
9
|
-
Created:
|
|
10
|
-
25 May 2024
|
|
11
|
-
|
|
12
|
-
Copyright (c) 2023-2024 Atlas Cross Inc. All rights reserved.
|
|
13
|
-
</file>
|
|
14
|
-
*/
|
|
15
|
-
export class BillingUtils {
|
|
16
|
-
static convert2AmountWithCurrency(amount, currency) {
|
|
17
|
-
switch (currency) {
|
|
18
|
-
case 'GBP':
|
|
19
|
-
return '£' + amount;
|
|
20
|
-
case 'EUR':
|
|
21
|
-
return '€' + amount;
|
|
22
|
-
case 'USD':
|
|
23
|
-
return '$' + amount;
|
|
24
|
-
}
|
|
25
|
-
return amount;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvYmlsbGluZy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7OztFQWFFO0FBRUYsTUFBTSxPQUFPLFlBQVk7SUFDaEIsTUFBTSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sRUFBRSxRQUFRO1FBQ3ZELFFBQVEsUUFBUSxFQUFFLENBQUM7WUFDakIsS0FBSyxLQUFLO2dCQUNSLE9BQU8sR0FBRyxHQUFHLE1BQU0sQ0FBQztZQUV0QixLQUFLLEtBQUs7Z0JBQ1IsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDO1lBRXRCLEtBQUssS0FBSztnQkFDUixPQUFPLEdBQUcsR0FBRyxNQUFNLENBQUM7UUFDeEIsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBBdGxhcyBDcm9zc1xyXG5cclxuICBBdXRob3JzOlxyXG4gICAgTGVvbiBNYWx5YW4gbGVvbi5tYWx5YW5Ab3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNSBNYXkgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMjMtMjAyNCBBdGxhcyBDcm9zcyBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBjbGFzcyBCaWxsaW5nVXRpbHMge1xyXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydDJBbW91bnRXaXRoQ3VycmVuY3koYW1vdW50LCBjdXJyZW5jeSkge1xyXG4gICAgc3dpdGNoIChjdXJyZW5jeSkge1xyXG4gICAgICBjYXNlICdHQlAnOlxyXG4gICAgICAgIHJldHVybiAnwqMnICsgYW1vdW50O1xyXG5cclxuICAgICAgY2FzZSAnRVVSJzpcclxuICAgICAgICByZXR1cm4gJ+KCrCcgKyBhbW91bnQ7XHJcblxyXG4gICAgICBjYXNlICdVU0QnOlxyXG4gICAgICAgIHJldHVybiAnJCcgKyBhbW91bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGFtb3VudDtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
2 May 2023
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
export class Browser {
|
|
17
|
-
static isIE() {
|
|
18
|
-
return window.navigator.userAgent.indexOf("MSIE ") > -1 || window.navigator.userAgent.indexOf("Trident/") > -1;
|
|
19
|
-
}
|
|
20
|
-
static isIframe() {
|
|
21
|
-
return window !== window.parent && !window.opener;
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJvd3Nlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2Jyb3dzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNLE9BQU8sT0FBTztJQUNYLE1BQU0sQ0FBQyxJQUFJO1FBQ2hCLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRU0sTUFBTSxDQUFDLFFBQVE7UUFDcEIsT0FBTyxNQUFNLEtBQUssTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDcEQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDIgTWF5IDIwMjNcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5leHBvcnQgY2xhc3MgQnJvd3NlciB7XHJcbiAgcHVibGljIHN0YXRpYyBpc0lFKCkge1xyXG4gICAgcmV0dXJuIHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoXCJNU0lFIFwiKSA+IC0xIHx8IHdpbmRvdy5uYXZpZ2F0b3IudXNlckFnZW50LmluZGV4T2YoXCJUcmlkZW50L1wiKSA+IC0xO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBpc0lmcmFtZSgpIHtcclxuICAgIHJldHVybiB3aW5kb3cgIT09IHdpbmRvdy5wYXJlbnQgJiYgIXdpbmRvdy5vcGVuZXI7XHJcbiAgfVxyXG59XHJcblxyXG4iXX0=
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
1 Apr 2024
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
import { ClientApps } from "./core-settings";
|
|
17
|
-
export function getAppSettingsById(id) {
|
|
18
|
-
let apps = ClientApps;
|
|
19
|
-
if (apps && id) {
|
|
20
|
-
for (let i = 0; i < apps.length; i++) {
|
|
21
|
-
let app = apps[i];
|
|
22
|
-
if (app.id == id) {
|
|
23
|
-
return app;
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
export function getAppSettingsByName(name) {
|
|
30
|
-
let apps = ClientApps;
|
|
31
|
-
if (apps && name) {
|
|
32
|
-
for (let i = 0; i < apps.length; i++) {
|
|
33
|
-
let app = apps[i];
|
|
34
|
-
if (app.name == name) {
|
|
35
|
-
return app;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
export function getCurrentApp() {
|
|
42
|
-
if (!AppSettings) {
|
|
43
|
-
return null;
|
|
44
|
-
}
|
|
45
|
-
let appOne = getAppSettingsById(1);
|
|
46
|
-
return {
|
|
47
|
-
type: AppSettings.id,
|
|
48
|
-
root: AppSettings.root,
|
|
49
|
-
one: appOne,
|
|
50
|
-
oneUrl: appOne?.baseUrl + appOne?.root
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
export const AppName = document.getElementById('appName').getAttribute('data-appname');
|
|
54
|
-
export const AppSettings = getAppSettingsByName(AppName);
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2NvcmUvY29uc3RzL2FwcC1zZXR0aW5ncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUU3QyxNQUFNLFVBQVUsa0JBQWtCLENBQUMsRUFBRTtJQUNuQyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUM7SUFFdEIsSUFBSSxJQUFJLElBQUksRUFBRSxFQUFFLENBQUM7UUFDZixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3JDLElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUVsQixJQUFJLEdBQUcsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ2pCLE9BQU8sR0FBRyxDQUFDO1lBQ2IsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQUk7SUFDdkMsSUFBSSxJQUFJLEdBQUcsVUFBVSxDQUFDO0lBRXRCLElBQUksSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2pCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDckMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRWxCLElBQUksR0FBRyxDQUFDLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxHQUFHLENBQUM7WUFDYixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFXRCxNQUFNLFVBQVUsYUFBYTtJQUMzQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsSUFBSSxNQUFNLEdBQUcsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbkMsT0FBTztRQUNMLElBQUksRUFBRSxXQUFXLENBQUMsRUFBRTtRQUNwQixJQUFJLEVBQUUsV0FBVyxDQUFDLElBQUk7UUFFdEIsR0FBRyxFQUFFLE1BQU07UUFDWCxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sR0FBRyxNQUFNLEVBQUUsSUFBSTtLQUN2QyxDQUFBO0FBQ0gsQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBSSxRQUFRLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBc0IsQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDN0csTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDEgQXByIDIwMjRcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgeyBDbGllbnRBcHBzIH0gZnJvbSBcIi4vY29yZS1zZXR0aW5nc1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcFNldHRpbmdzQnlJZChpZCkge1xyXG4gIGxldCBhcHBzID0gQ2xpZW50QXBwcztcclxuXHJcbiAgaWYgKGFwcHMgJiYgaWQpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXBwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgYXBwID0gYXBwc1tpXTtcclxuXHJcbiAgICAgIGlmIChhcHAuaWQgPT0gaWQpIHtcclxuICAgICAgICByZXR1cm4gYXBwO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gbnVsbDtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcFNldHRpbmdzQnlOYW1lKG5hbWUpIHtcclxuICBsZXQgYXBwcyA9IENsaWVudEFwcHM7XHJcblxyXG4gIGlmIChhcHBzICYmIG5hbWUpIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXBwcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBsZXQgYXBwID0gYXBwc1tpXTtcclxuXHJcbiAgICAgIGlmIChhcHAubmFtZSA9PSBuYW1lKSB7XHJcbiAgICAgICAgcmV0dXJuIGFwcDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmV0dXJuIG51bGw7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSUN1cnJlbnRBcHAge1xyXG4gIHR5cGU6IG51bWJlcjtcclxuICByb290OiBzdHJpbmc7XHJcblxyXG4gIC8vQXBwbGljYXRpb25PbmVcclxuICBvbmU6IGFueTtcclxuICBvbmVVcmw6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGdldEN1cnJlbnRBcHAoKTogSUN1cnJlbnRBcHAge1xyXG4gIGlmICghQXBwU2V0dGluZ3MpIHtcclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgbGV0IGFwcE9uZSA9IGdldEFwcFNldHRpbmdzQnlJZCgxKTtcclxuICByZXR1cm4ge1xyXG4gICAgdHlwZTogQXBwU2V0dGluZ3MuaWQsXHJcbiAgICByb290OiBBcHBTZXR0aW5ncy5yb290LFxyXG5cclxuICAgIG9uZTogYXBwT25lLFxyXG4gICAgb25lVXJsOiBhcHBPbmU/LmJhc2VVcmwgKyBhcHBPbmU/LnJvb3RcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBBcHBOYW1lID0gKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdhcHBOYW1lJykgYXMgSFRNTElucHV0RWxlbWVudCkuZ2V0QXR0cmlidXRlKCdkYXRhLWFwcG5hbWUnKTtcclxuZXhwb3J0IGNvbnN0IEFwcFNldHRpbmdzID0gZ2V0QXBwU2V0dGluZ3NCeU5hbWUoQXBwTmFtZSk7XHJcbiJdfQ==
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
26 Jun 2020
|
|
12
|
-
|
|
13
|
-
Examples:
|
|
14
|
-
https://github.com/microsoft/TypeScript/blob/main/src/server/editorServices.ts
|
|
15
|
-
https://github.com/microsoft/TypeScript/blob/main/src/compiler/core.ts
|
|
16
|
-
|
|
17
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
18
|
-
</file>
|
|
19
|
-
*/
|
|
20
|
-
export const AppCoreSettings = JSON.parse((document.getElementById('appCoreSettings')).getAttribute('data-appcoresettings'));
|
|
21
|
-
//WebApp
|
|
22
|
-
let isDevMode = `${AppCoreSettings?.isDevMode}`;
|
|
23
|
-
export const AppVersion = `${AppCoreSettings?.version}`;
|
|
24
|
-
export const IsDevMode = (isDevMode && (isDevMode == 'True' || isDevMode == 'true'));
|
|
25
|
-
export const IsProdMode = !IsDevMode;
|
|
26
|
-
export const ClientApps = AppCoreSettings?.clientApps;
|
|
27
|
-
//Api
|
|
28
|
-
export const ApiUrl = `${AppCoreSettings?.api.url}`;
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1zZXR0aW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2NvbnN0cy9jb3JlLXNldHRpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFrQkU7QUFFRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FDdEMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUFDLENBQXNCLENBQUMsWUFBWSxDQUFDLHNCQUFzQixDQUFDLENBQ3hHLENBQUM7QUFFRixRQUFRO0FBQ1IsSUFBSSxTQUFTLEdBQUcsR0FBRyxlQUFlLEVBQUUsU0FBUyxFQUFFLENBQUM7QUFFaEQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLEdBQUcsZUFBZSxFQUFFLE9BQU8sRUFBRSxDQUFDO0FBQ3hELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBWSxDQUFDLFNBQVMsSUFBSSxDQUFDLFNBQVMsSUFBSSxNQUFNLElBQUksU0FBUyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUM7QUFDOUYsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFZLENBQUMsU0FBUyxDQUFDO0FBQzlDLE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxlQUFlLEVBQUUsVUFBVSxDQUFDO0FBRXRELEtBQUs7QUFDTCxNQUFNLENBQUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxlQUFlLEVBQUUsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbS5vc292aXRueUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seS5vc292aXRueUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIEV4YW1wbGVzOlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L2Jsb2IvbWFpbi9zcmMvc2VydmVyL2VkaXRvclNlcnZpY2VzLnRzXHJcbiAgICBodHRwczovL2dpdGh1Yi5jb20vbWljcm9zb2Z0L1R5cGVTY3JpcHQvYmxvYi9tYWluL3NyYy9jb21waWxlci9jb3JlLnRzXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IEFwcENvcmVTZXR0aW5ncyA9IEpTT04ucGFyc2UoXHJcbiAgKChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYXBwQ29yZVNldHRpbmdzJykpIGFzIEhUTUxJbnB1dEVsZW1lbnQpLmdldEF0dHJpYnV0ZSgnZGF0YS1hcHBjb3Jlc2V0dGluZ3MnKVxyXG4pO1xyXG5cclxuLy9XZWJBcHBcclxubGV0IGlzRGV2TW9kZSA9IGAke0FwcENvcmVTZXR0aW5ncz8uaXNEZXZNb2RlfWA7XHJcblxyXG5leHBvcnQgY29uc3QgQXBwVmVyc2lvbiA9IGAke0FwcENvcmVTZXR0aW5ncz8udmVyc2lvbn1gO1xyXG5leHBvcnQgY29uc3QgSXNEZXZNb2RlOiBib29sZWFuID0gKGlzRGV2TW9kZSAmJiAoaXNEZXZNb2RlID09ICdUcnVlJyB8fCBpc0Rldk1vZGUgPT0gJ3RydWUnKSk7XHJcbmV4cG9ydCBjb25zdCBJc1Byb2RNb2RlOiBib29sZWFuID0gIUlzRGV2TW9kZTtcclxuZXhwb3J0IGNvbnN0IENsaWVudEFwcHMgPSBBcHBDb3JlU2V0dGluZ3M/LmNsaWVudEFwcHM7XHJcblxyXG4vL0FwaVxyXG5leHBvcnQgY29uc3QgQXBpVXJsID0gYCR7QXBwQ29yZVNldHRpbmdzPy5hcGkudXJsfWA7Il19
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
1 Apr 2024
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
export const dateTimeFormats = {
|
|
17
|
-
medium: 'dd MMM yyyy HH:mm'
|
|
18
|
-
};
|
|
19
|
-
export const dateFormats = {
|
|
20
|
-
medium: "dd MMM yyyy",
|
|
21
|
-
short: "dd/MM/yyyy"
|
|
22
|
-
};
|
|
23
|
-
export const timeFormats = {
|
|
24
|
-
medium: "HH:mm:ss",
|
|
25
|
-
short: "HH:mm"
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2NvbnN0cy9mb3JtYXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztFQWNFO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE1BQU0sRUFBRSxtQkFBbUI7Q0FDNUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRztJQUN6QixNQUFNLEVBQUUsYUFBYTtJQUNyQixLQUFLLEVBQUUsWUFBWTtDQUNwQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHO0lBQ3pCLE1BQU0sRUFBRSxVQUFVO0lBQ2xCLEtBQUssRUFBRSxPQUFPO0NBQ2YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHkub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxIEFwciAyMDI0XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDI1IE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuZXhwb3J0IGNvbnN0IGRhdGVUaW1lRm9ybWF0cyA9IHtcclxuICBtZWRpdW06ICdkZCBNTU0geXl5eSBISDptbSdcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkYXRlRm9ybWF0cyA9IHtcclxuICBtZWRpdW06IFwiZGQgTU1NIHl5eXlcIixcclxuICBzaG9ydDogXCJkZC9NTS95eXl5XCJcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB0aW1lRm9ybWF0cyA9IHtcclxuICBtZWRpdW06IFwiSEg6bW06c3NcIixcclxuICBzaG9ydDogXCJISDptbVwiXHJcbn07XHJcbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
|
|
9
|
-
Created:
|
|
10
|
-
11 Nov 2024
|
|
11
|
-
|
|
12
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
13
|
-
</file>
|
|
14
|
-
*/
|
|
15
|
-
export const GAEvents = {
|
|
16
|
-
login: {
|
|
17
|
-
signin: 'osa_login_signin',
|
|
18
|
-
signin_success: 'osa_login_signin_success',
|
|
19
|
-
signup: 'osa_login_signup',
|
|
20
|
-
signup_success: 'osa_login_signup_success'
|
|
21
|
-
}
|
|
22
|
-
};
|
|
23
|
-
export const GABillingEvents = {
|
|
24
|
-
payment: 'osa_billing_payment'
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2EuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb25zdHMvZ2EudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7Ozs7Ozs7Ozs7Ozs7RUFhRTtBQUVGLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRztJQUN0QixLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLGNBQWMsRUFBRSwwQkFBMEI7UUFDMUMsTUFBTSxFQUFFLGtCQUFrQjtRQUMxQixjQUFjLEVBQUUsMEJBQTBCO0tBQzNDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUM3QixPQUFPLEVBQUUscUJBQXFCO0NBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuXHJcbi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAxMSBOb3YgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBHQUV2ZW50cyA9IHtcclxuICBsb2dpbjoge1xyXG4gICAgc2lnbmluOiAnb3NhX2xvZ2luX3NpZ25pbicsXHJcbiAgICBzaWduaW5fc3VjY2VzczogJ29zYV9sb2dpbl9zaWduaW5fc3VjY2VzcycsXHJcbiAgICBzaWdudXA6ICdvc2FfbG9naW5fc2lnbnVwJyxcclxuICAgIHNpZ251cF9zdWNjZXNzOiAnb3NhX2xvZ2luX3NpZ251cF9zdWNjZXNzJ1xyXG4gIH1cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBHQUJpbGxpbmdFdmVudHMgPSB7XHJcbiAgcGF5bWVudDogJ29zYV9iaWxsaW5nX3BheW1lbnQnXHJcbn07XHJcblxyXG4iXX0=
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
Anatoly Osovitny anatoly.osovitny@osovitny.com
|
|
9
|
-
|
|
10
|
-
Created:
|
|
11
|
-
28 Apr 2024
|
|
12
|
-
|
|
13
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
14
|
-
</file>
|
|
15
|
-
*/
|
|
16
|
-
export const AppContextStorageKeys = {
|
|
17
|
-
version: 'version',
|
|
18
|
-
currency: 'currency',
|
|
19
|
-
//Lists
|
|
20
|
-
countries: 'countries',
|
|
21
|
-
languages: 'languages'
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZUtleXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvY29yZS9jb25zdHMvc3RvcmFnZUtleXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRztJQUNuQyxPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtJQUVwQixPQUFPO0lBQ1AsU0FBUyxFQUFFLFdBQVc7SUFDdEIsU0FBUyxFQUFFLFdBQVc7Q0FDdkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHkub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyOCBBcHIgMjAyNFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyNSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbmV4cG9ydCBjb25zdCBBcHBDb250ZXh0U3RvcmFnZUtleXMgPSB7XHJcbiAgdmVyc2lvbjogJ3ZlcnNpb24nLFxyXG4gIGN1cnJlbmN5OiAnY3VycmVuY3knLFxyXG5cclxuICAvL0xpc3RzXHJcbiAgY291bnRyaWVzOiAnY291bnRyaWVzJyxcclxuICBsYW5ndWFnZXM6ICdsYW5ndWFnZXMnXHJcbn07XHJcbiJdfQ==
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
<file>
|
|
3
|
-
Project:
|
|
4
|
-
@osovitny/anatoly
|
|
5
|
-
|
|
6
|
-
Authors:
|
|
7
|
-
Vadim Osovitny vadim.osovitny@osovitny.com
|
|
8
|
-
|
|
9
|
-
Created:
|
|
10
|
-
29 June 2020
|
|
11
|
-
|
|
12
|
-
Copyright (c) 2016-2025 Osovitny Inc. All rights reserved.
|
|
13
|
-
</file>
|
|
14
|
-
*/
|
|
15
|
-
import { is } from "../is";
|
|
16
|
-
export class Convert {
|
|
17
|
-
static pad(number) {
|
|
18
|
-
if (number < 10) {
|
|
19
|
-
return '0' + number;
|
|
20
|
-
}
|
|
21
|
-
return number;
|
|
22
|
-
}
|
|
23
|
-
static enumToString(enumeration, value) {
|
|
24
|
-
for (let k in enumeration)
|
|
25
|
-
if (enumeration[k] == value)
|
|
26
|
-
return k;
|
|
27
|
-
return null;
|
|
28
|
-
}
|
|
29
|
-
static enumToArray(enumeration, valueAsInt = true, notIncludes) {
|
|
30
|
-
const notIncludeFiler = (value) => {
|
|
31
|
-
if (isNaN(Number(value))) {
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
if (notIncludes) {
|
|
35
|
-
for (let i in notIncludes) {
|
|
36
|
-
if (notIncludes[i] == value)
|
|
37
|
-
return false;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return true;
|
|
41
|
-
};
|
|
42
|
-
if (valueAsInt) {
|
|
43
|
-
return Object.keys(enumeration)
|
|
44
|
-
.filter(notIncludeFiler)
|
|
45
|
-
.map(key => ({
|
|
46
|
-
value: parseInt(key),
|
|
47
|
-
text: enumeration[key]
|
|
48
|
-
}));
|
|
49
|
-
}
|
|
50
|
-
else {
|
|
51
|
-
return Object.keys(enumeration)
|
|
52
|
-
.filter(notIncludeFiler)
|
|
53
|
-
.map(key => ({
|
|
54
|
-
value: key,
|
|
55
|
-
text: enumeration[key]
|
|
56
|
-
}));
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
static stringToArray(str, separator = ',') {
|
|
60
|
-
if (str) {
|
|
61
|
-
return str.split(separator).filter(element => element);
|
|
62
|
-
}
|
|
63
|
-
return [];
|
|
64
|
-
}
|
|
65
|
-
static stringToIntArray(str, separator = ',') {
|
|
66
|
-
if (str) {
|
|
67
|
-
return str.split(separator).filter(element => element).map(value => parseInt(value));
|
|
68
|
-
}
|
|
69
|
-
return [];
|
|
70
|
-
}
|
|
71
|
-
static company2String(comp) {
|
|
72
|
-
let company = JSON.parse(comp);
|
|
73
|
-
if (company) {
|
|
74
|
-
return `${company.name} ${company.phone} ${company.email} ${company.websiteUrl}`;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
static address2String(adr) {
|
|
78
|
-
let address = JSON.parse(adr);
|
|
79
|
-
return `${address.street} ${address.street2} ${address.city} ${address.stateOrRegion} ${address.zipcode} ${address.country}`;
|
|
80
|
-
}
|
|
81
|
-
static stringToBoolean(value) {
|
|
82
|
-
if (value) {
|
|
83
|
-
if (is.boolean(value)) {
|
|
84
|
-
return value;
|
|
85
|
-
}
|
|
86
|
-
if (is.string(value)) {
|
|
87
|
-
switch (value.toLowerCase().trim()) {
|
|
88
|
-
case "true":
|
|
89
|
-
case "yes":
|
|
90
|
-
case "1":
|
|
91
|
-
return true;
|
|
92
|
-
case "false":
|
|
93
|
-
case "no":
|
|
94
|
-
case "0":
|
|
95
|
-
case null:
|
|
96
|
-
return false;
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVydC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi9jb3JlL2NvbnZlcnRzL2NvbnZlcnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7RUFhRTtBQUVGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxPQUFPLENBQUM7QUFFM0IsTUFBTSxPQUFPLE9BQU87SUFDVixNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU07UUFDdkIsSUFBSSxNQUFNLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDaEIsT0FBTyxHQUFHLEdBQUcsTUFBTSxDQUFDO1FBQ3RCLENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsS0FBSztRQUMzQyxLQUFLLElBQUksQ0FBQyxJQUFJLFdBQVc7WUFBRSxJQUFJLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLO2dCQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLFVBQVUsR0FBRyxJQUFJLEVBQUUsV0FBWTtRQUNwRSxNQUFNLGVBQWUsR0FBRyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hDLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUVELElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLEtBQUssSUFBSSxDQUFDLElBQUksV0FBVyxFQUFFLENBQUM7b0JBQzFCLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUs7d0JBQ3pCLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sSUFBSSxDQUFD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b0JBQ1QsS0FBSyxJQUFJO3dCQUNQLE9BQU8sS0FBSyxDQUFDO2dCQUNqQixDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW0ub3Nvdml0bnlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyOSBKdW5lIDIwMjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjUgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG5pbXBvcnQgeyBpcyB9IGZyb20gXCIuLi9pc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENvbnZlcnQge1xyXG4gIHByaXZhdGUgc3RhdGljIHBhZChudW1iZXIpIHtcclxuICAgIGlmIChudW1iZXIgPCAxMCkge1xyXG4gICAgICByZXR1cm4gJzAnICsgbnVtYmVyO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bWJlcjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW51bVRvU3RyaW5nKGVudW1lcmF0aW9uLCB2YWx1ZSkge1xyXG4gICAgZm9yIChsZXQgayBpbiBlbnVtZXJhdGlvbikgaWYgKGVudW1lcmF0aW9uW2tdID09IHZhbHVlKSByZXR1cm4gaztcclxuXHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgZW51bVRvQXJyYXkoZW51bWVyYXRpb24sIHZhbHVlQXNJbnQgPSB0cnVlLCBub3RJbmNsdWRlcz8pIHtcclxuICAgIGNvbnN0IG5vdEluY2x1ZGVGaWxlciA9ICh2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAoaXNOYU4oTnVtYmVyKHZhbHVlKSkpIHtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChub3RJbmNsdWRlcykge1xyXG4gICAgICAgIGZvciAobGV0IGkgaW4gbm90SW5jbHVkZXMpIHtcclxuICAgICAgICAgIGlmIChub3RJbmNsdWRlc1tpXSA9PSB2YWx1ZSlcclxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHZhbHVlQXNJbnQpIHtcclxuICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKGVudW1lcmF0aW9uKVxyXG4gICAgICAgICAgICAgICAgICAgLmZpbHRlcihub3RJbmNsdWRlRmlsZXIpXHJcbiAgICAgICAgICAgICAgICAgICAubWFwKGtleSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgICAgICB2YWx1ZTogcGFyc2VJbnQoa2V5KSxcclxuICAgICAgICAgICAgICAgICAgICAgdGV4dDogZW51bWVyYXRpb25ba2V5XVxyXG4gICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnVtZXJhdGlvbilcclxuICAgICAgICAgICAgICAgICAgIC5maWx0ZXIobm90SW5jbHVkZUZpbGVyKVxyXG4gICAgICAgICAgICAgICAgICAgLm1hcChrZXkgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGtleSxcclxuICAgICAgICAgICAgICAgICAgICAgdGV4dDogZW51bWVyYXRpb25ba2V5XVxyXG4gICAgICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0FycmF5KHN0cjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICByZXR1cm4gc3RyLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0ludEFycmF5KHN0cjogc3RyaW5nLCBzZXBhcmF0b3I6IHN0cmluZyA9ICcsJykge1xyXG4gICAgaWYgKHN0cikge1xyXG4gICAgICByZXR1cm4gc3RyLnNwbGl0KHNlcGFyYXRvcikuZmlsdGVyKGVsZW1lbnQgPT4gZWxlbWVudCkubWFwKHZhbHVlID0+IHBhcnNlSW50KHZhbHVlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFtdO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBjb21wYW55MlN0cmluZyhjb21wOmFueSk6c3RyaW5nIHtcclxuICAgIGxldCBjb21wYW55ID0gSlNPTi5wYXJzZShjb21wKTtcclxuICAgIGlmKGNvbXBhbnkpXHJcbiAgICB7XHJcbiAgICAgIHJldHVybiBgJHtjb21wYW55Lm5hbWV9ICR7Y29tcGFueS5waG9uZX0gJHtjb21wYW55LmVtYWlsfSAke2NvbXBhbnkud2Vic2l0ZVVybH1gO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBhZGRyZXNzMlN0cmluZyhhZHI6YW55KTpzdHJpbmcge1xyXG4gICAgbGV0IGFkZHJlc3MgPSBKU09OLnBhcnNlKGFkcik7XHJcbiAgICByZXR1cm4gYCR7YWRkcmVzcy5zdHJlZXR9ICR7YWRkcmVzcy5zdHJlZXQyfSAke2FkZHJlc3MuY2l0eX0gJHthZGRyZXNzLnN0YXRlT3JSZWdpb259ICR7YWRkcmVzcy56aXBjb2RlfSAke2FkZHJlc3MuY291bnRyeX1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBzdHJpbmdUb0Jvb2xlYW4odmFsdWUpIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICBpZiAoaXMuYm9vbGVhbih2YWx1ZSkpe1xyXG4gICAgICAgIHJldHVybiB2YWx1ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGlzLnN0cmluZyh2YWx1ZSkpe1xyXG4gICAgICAgIHN3aXRjaCAodmFsdWUudG9Mb3dlckNhc2UoKS50cmltKCkpIHtcclxuICAgICAgICAgIGNhc2UgXCJ0cnVlXCI6XHJcbiAgICAgICAgICBjYXNlIFwieWVzXCI6XHJcbiAgICAgICAgICBjYXNlIFwiMVwiOlxyXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIFxyXG4gICAgICAgICAgY2FzZSBcImZhbHNlXCI6XHJcbiAgICAgICAgICBjYXNlIFwibm9cIjpcclxuICAgICAgICAgIGNhc2UgXCIwXCI6XHJcbiAgICAgICAgICBjYXNlIG51bGw6XHJcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|