@osovitny/anatoly 3.17.75 → 3.17.78

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.
Files changed (202) hide show
  1. package/esm2022/lib/anatoly.module.mjs +2 -3
  2. package/esm2022/lib/billing/billing.module.mjs +70 -0
  3. package/esm2022/lib/billing/exports.mjs +19 -0
  4. package/esm2022/lib/billing/models/paypal-models.mjs +16 -0
  5. package/esm2022/lib/billing/payments/components/braintree/braintree.component.mjs +155 -0
  6. package/esm2022/lib/billing/payments/components/exports.mjs +22 -0
  7. package/esm2022/lib/billing/payments/components/index.mjs +25 -0
  8. package/esm2022/lib/billing/payments/components/paypal/paypal-button.component.mjs +157 -0
  9. package/esm2022/lib/billing/payments/components/paypal/paypal.component.mjs +316 -0
  10. package/esm2022/lib/billing/payments/components/stripe/stripe.component.mjs +109 -0
  11. package/esm2022/lib/billing/payments/services/payments.service.mjs +173 -0
  12. package/esm2022/lib/billing/services/paypal-script.service.mjs +84 -0
  13. package/esm2022/lib/core/browser.mjs +3 -3
  14. package/esm2022/lib/core/consts/app-settings.mjs +3 -3
  15. package/esm2022/lib/core/consts/core-settings.mjs +3 -3
  16. package/esm2022/lib/core/consts/formats.mjs +3 -3
  17. package/esm2022/lib/core/consts/ga.mjs +26 -0
  18. package/esm2022/lib/core/converts/convert.mjs +3 -3
  19. package/esm2022/lib/core/converts/dateConvert.mjs +3 -3
  20. package/esm2022/lib/core/converts/tz/tzParseTimezone.mjs +3 -3
  21. package/esm2022/lib/core/converts/tz/tzTokenizeDate.mjs +3 -3
  22. package/esm2022/lib/core/converts/xmlFormatter.mjs +3 -3
  23. package/esm2022/lib/core/core.module.mjs +10 -3
  24. package/esm2022/lib/core/dom.mjs +7 -7
  25. package/esm2022/lib/core/enums/billing.mjs +51 -0
  26. package/esm2022/lib/core/enums/enums.mjs +21 -0
  27. package/esm2022/lib/core/exports.mjs +63 -0
  28. package/esm2022/lib/core/go/base-go.service.mjs +4 -4
  29. package/esm2022/lib/core/guards/once-import.guard.mjs +4 -4
  30. package/esm2022/lib/core/guards/starter.guard.mjs +3 -3
  31. package/esm2022/lib/core/guid.mjs +3 -3
  32. package/esm2022/lib/core/interceptors/httpInterceptor.mjs +4 -4
  33. package/esm2022/lib/core/is.mjs +3 -3
  34. package/esm2022/lib/core/localization/localization.module.mjs +3 -3
  35. package/esm2022/lib/core/localization/localization.service.mjs +3 -3
  36. package/esm2022/lib/core/localization/localize.pipe.mjs +3 -3
  37. package/esm2022/lib/core/localization/settings.module.mjs +3 -3
  38. package/esm2022/lib/core/localization/utils.mjs +3 -3
  39. package/esm2022/lib/core/logging/globalErrorHandler.mjs +3 -3
  40. package/esm2022/lib/core/logging/logging.service.mjs +3 -3
  41. package/esm2022/lib/core/models/qs.mjs +17 -0
  42. package/esm2022/lib/core/notifications/alerts.mjs +3 -3
  43. package/esm2022/lib/core/notifications/interfaces/notification.mjs +3 -3
  44. package/esm2022/lib/core/notifications/services/notification-service.mjs +3 -3
  45. package/esm2022/lib/core/performance/stopwatch.mjs +4 -4
  46. package/esm2022/lib/core/services/appcontext.service.mjs +3 -3
  47. package/esm2022/lib/core/services/dm.service.mjs +3 -3
  48. package/esm2022/lib/core/services/google-analytics.service.mjs +3 -3
  49. package/esm2022/lib/core/services/idle.service.mjs +3 -3
  50. package/esm2022/lib/core/services/loading.service.mjs +3 -3
  51. package/esm2022/lib/core/services/script.service.mjs +77 -0
  52. package/esm2022/lib/core/services/starter.service.mjs +1 -1
  53. package/esm2022/lib/core/services/web-storage.service.mjs +4 -4
  54. package/esm2022/lib/core/subs.mjs +3 -3
  55. package/esm2022/lib/core/utils/qsutils.mjs +3 -3
  56. package/esm2022/lib/core/utils/utils.mjs +3 -3
  57. package/esm2022/lib/data/base/api.service.mjs +2 -3
  58. package/esm2022/lib/data/base/grid/grid-edit.service.mjs +2 -3
  59. package/esm2022/lib/data/base/grid/grid-read.service.mjs +2 -3
  60. package/esm2022/lib/data/data.module.mjs +10 -3
  61. package/esm2022/lib/data/exports.mjs +22 -0
  62. package/esm2022/lib/data/services/billing/payments-api.service.mjs +67 -0
  63. package/esm2022/lib/data/services/core-api.service.mjs +5 -5
  64. package/esm2022/lib/data/services/emails-api.service.mjs +5 -5
  65. package/esm2022/lib/external/fa.module.mjs +45 -0
  66. package/esm2022/lib/external/kendo.module.mjs +90 -0
  67. package/esm2022/lib/iam/b2c/b2c.mjs +3 -3
  68. package/esm2022/lib/iam/b2c/consts.mjs +3 -3
  69. package/esm2022/lib/iam/b2c/index.mjs +3 -3
  70. package/esm2022/lib/iam/configs.mjs +3 -3
  71. package/esm2022/lib/iam/consts.mjs +3 -3
  72. package/esm2022/lib/iam/exports.mjs +22 -0
  73. package/esm2022/lib/iam/guards/admin.guard.mjs +3 -3
  74. package/esm2022/lib/iam/guards/authentication.guard.mjs +1 -1
  75. package/esm2022/lib/iam/guards/index.mjs +2 -2
  76. package/esm2022/lib/iam/iam-pages.module.mjs +3 -3
  77. package/esm2022/lib/iam/iam-pages.routes.mjs +3 -3
  78. package/esm2022/lib/iam/iam.module.mjs +3 -3
  79. package/esm2022/lib/iam/pages/signin.page.mjs +3 -3
  80. package/esm2022/lib/iam/pages/signout.page.mjs +3 -3
  81. package/esm2022/lib/iam/pages/signup.page.mjs +3 -3
  82. package/esm2022/lib/iam/redirect.mjs +3 -3
  83. package/esm2022/lib/iam/services/auth.service.mjs +2 -2
  84. package/esm2022/lib/iam/storage.mjs +3 -3
  85. package/esm2022/lib/iam/utils.mjs +3 -3
  86. package/esm2022/lib/ui/components/base/components/component.mjs +4 -4
  87. package/esm2022/lib/ui/components/base/components/edit.component.mjs +4 -4
  88. package/esm2022/lib/ui/components/base/components/enum-edit.component.mjs +4 -4
  89. package/esm2022/lib/ui/components/base/dialog.mjs +7 -4
  90. package/esm2022/lib/ui/components/base/list.mjs +3 -3
  91. package/esm2022/lib/ui/components/base/pages/edit.page.mjs +3 -3
  92. package/esm2022/lib/ui/components/base/pages/page.mjs +3 -3
  93. package/esm2022/lib/ui/components/base/pages/paged.page.mjs +3 -3
  94. package/esm2022/lib/ui/components/billing/buyaccess-button.component.mjs +3 -3
  95. package/esm2022/lib/ui/components/billing/subscribe-plan-button.component.mjs +3 -3
  96. package/esm2022/lib/ui/components/card/card-body.component.mjs +3 -4
  97. package/esm2022/lib/ui/components/card/card-footer.component.mjs +3 -4
  98. package/esm2022/lib/ui/components/card/card-header.component.mjs +3 -4
  99. package/esm2022/lib/ui/components/card/card.component.mjs +3 -4
  100. package/esm2022/lib/ui/components/check-icon/check-icon.component.mjs +3 -3
  101. package/esm2022/lib/ui/components/copy-2-clipboard/copy-2-clipboard.component.mjs +3 -3
  102. package/esm2022/lib/ui/components/datapager/datapager.component.mjs +3 -3
  103. package/esm2022/lib/ui/components/dropdownlists/country/country.dropdownlist.mjs +3 -3
  104. package/esm2022/lib/ui/components/dropdownlists/timezone/timezone.dropdownlist.mjs +3 -3
  105. package/esm2022/lib/ui/components/exports.mjs +50 -0
  106. package/esm2022/lib/ui/components/html-editor/base-html-editor.component.mjs +1 -1
  107. package/esm2022/lib/ui/components/html-editor/forms-html-editor.component.mjs +3 -3
  108. package/esm2022/lib/ui/components/html-editor/html-editor.component.mjs +3 -3
  109. package/esm2022/lib/ui/components/html-editor/html-editor.defaultoptions.mjs +3 -3
  110. package/esm2022/lib/ui/components/identity/signin-button.component.mjs +3 -3
  111. package/esm2022/lib/ui/components/identity/signout-button.component.mjs +3 -3
  112. package/esm2022/lib/ui/components/identity/signup-button.component.mjs +3 -3
  113. package/esm2022/lib/ui/components/index.mjs +44 -37
  114. package/esm2022/lib/ui/components/nodata/nodata.component.mjs +3 -3
  115. package/esm2022/lib/ui/components/spinners/loading/loading.component.mjs +3 -3
  116. package/esm2022/lib/ui/components/spinners/pagespinner/pagespinner.component.mjs +3 -3
  117. package/esm2022/lib/ui/components/urlslug/urlslug.component.mjs +3 -3
  118. package/esm2022/lib/ui/dialogs/contact-us/contact-us.dialog.mjs +3 -3
  119. package/esm2022/lib/ui/dialogs/exports.mjs +17 -0
  120. package/esm2022/lib/ui/dialogs/index.mjs +7 -4
  121. package/esm2022/lib/ui/directives/exports.mjs +18 -0
  122. package/esm2022/lib/ui/directives/hover.directive.mjs +3 -3
  123. package/esm2022/lib/ui/directives/index.mjs +8 -5
  124. package/esm2022/lib/ui/directives/native-element.directive.mjs +3 -3
  125. package/esm2022/lib/ui/exports.mjs +22 -0
  126. package/esm2022/lib/ui/forms/components/address/address.component.mjs +6 -6
  127. package/esm2022/lib/ui/forms/components/company/company.component.mjs +4 -4
  128. package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +3 -3
  129. package/esm2022/lib/ui/forms/exports.mjs +21 -0
  130. package/esm2022/lib/ui/forms/index.mjs +9 -8
  131. package/esm2022/lib/ui/pipes/exports.mjs +19 -0
  132. package/esm2022/lib/ui/pipes/filesize.pipe.mjs +3 -3
  133. package/esm2022/lib/ui/pipes/index.mjs +9 -6
  134. package/esm2022/lib/ui/pipes/replace-text.pipe.mjs +3 -3
  135. package/esm2022/lib/ui/pipes/safeHtml.pipe.mjs +3 -3
  136. package/esm2022/lib/ui/ui.module.mjs +51 -137
  137. package/esm2022/lib/ui/validation/exports.mjs +19 -0
  138. package/esm2022/lib/ui/validation/form-validation-summary.component.mjs +3 -3
  139. package/esm2022/lib/ui/validation/index.mjs +8 -6
  140. package/esm2022/lib/ui/validation/item-validation-summary.component.mjs +3 -3
  141. package/esm2022/lib/ui/validation/validation-summary.component.mjs +3 -3
  142. package/esm2022/public-api.mjs +9 -14
  143. package/fesm2022/osovitny-anatoly.mjs +1650 -867
  144. package/fesm2022/osovitny-anatoly.mjs.map +1 -1
  145. package/lib/billing/billing.module.d.ts +13 -0
  146. package/lib/billing/exports.d.ts +3 -0
  147. package/lib/{payments/PayPal → billing}/models/paypal-models.d.ts +1 -4
  148. package/lib/billing/payments/components/braintree/braintree.component.d.ts +25 -0
  149. package/lib/billing/payments/components/exports.d.ts +4 -0
  150. package/lib/billing/payments/components/index.d.ts +2 -0
  151. package/lib/billing/payments/components/paypal/paypal-button.component.d.ts +18 -0
  152. package/lib/{payments/PayPal/components → billing/payments/components/paypal}/paypal.component.d.ts +3 -3
  153. package/lib/billing/payments/components/stripe/stripe.component.d.ts +21 -0
  154. package/lib/billing/payments/services/payments.service.d.ts +50 -0
  155. package/lib/{payments/PayPal → billing}/services/paypal-script.service.d.ts +3 -4
  156. package/lib/core/consts/ga.d.ts +11 -0
  157. package/lib/core/enums/billing.d.ts +29 -0
  158. package/lib/core/enums/enums.d.ts +4 -0
  159. package/lib/core/{index.d.ts → exports.d.ts} +3 -0
  160. package/lib/core/interceptors/httpInterceptor.d.ts +1 -1
  161. package/lib/core/models/qs.d.ts +4 -0
  162. package/lib/{payments → core}/services/script.service.d.ts +3 -1
  163. package/lib/data/services/billing/payments-api.service.d.ts +13 -0
  164. package/lib/ui/components/base/components/component.d.ts +1 -1
  165. package/lib/ui/components/base/dialog.d.ts +2 -0
  166. package/lib/ui/components/exports.d.ts +30 -0
  167. package/lib/ui/components/index.d.ts +2 -30
  168. package/lib/ui/dialogs/exports.d.ts +1 -0
  169. package/lib/ui/dialogs/index.d.ts +2 -1
  170. package/lib/ui/directives/exports.d.ts +2 -0
  171. package/lib/ui/directives/index.d.ts +2 -2
  172. package/lib/ui/exports.d.ts +6 -0
  173. package/lib/ui/forms/components/address/address.component.d.ts +2 -2
  174. package/lib/ui/forms/components/company/company.component.d.ts +1 -1
  175. package/lib/ui/forms/exports.d.ts +3 -0
  176. package/lib/ui/forms/index.d.ts +2 -3
  177. package/lib/ui/pipes/exports.d.ts +3 -0
  178. package/lib/ui/pipes/index.d.ts +2 -3
  179. package/lib/ui/ui.module.d.ts +21 -21
  180. package/lib/ui/validation/exports.d.ts +3 -0
  181. package/lib/ui/validation/index.d.ts +2 -3
  182. package/package.json +4 -2
  183. package/public-api.d.ts +6 -11
  184. package/esm2022/lib/core/index.mjs +0 -59
  185. package/esm2022/lib/data/index.mjs +0 -23
  186. package/esm2022/lib/data/urls.mjs +0 -22
  187. package/esm2022/lib/iam/index.mjs +0 -22
  188. package/esm2022/lib/payments/PayPal/components/paypal.component.mjs +0 -317
  189. package/esm2022/lib/payments/PayPal/models/paypal-models.mjs +0 -17
  190. package/esm2022/lib/payments/PayPal/services/paypal-script.service.mjs +0 -98
  191. package/esm2022/lib/payments/index.mjs +0 -22
  192. package/esm2022/lib/payments/payments.module.mjs +0 -54
  193. package/esm2022/lib/payments/services/script.service.mjs +0 -63
  194. package/esm2022/lib/ui/external/fa.module.mjs +0 -46
  195. package/esm2022/lib/ui/external/kendo.module.mjs +0 -91
  196. package/lib/data/urls.d.ts +0 -4
  197. package/lib/payments/index.d.ts +0 -4
  198. package/lib/payments/payments.module.d.ts +0 -8
  199. /package/lib/data/{index.d.ts → exports.d.ts} +0 -0
  200. /package/lib/{ui/external → external}/fa.module.d.ts +0 -0
  201. /package/lib/{ui/external → external}/kendo.module.d.ts +0 -0
  202. /package/lib/iam/{index.d.ts → exports.d.ts} +0 -0
@@ -1,12 +1,15 @@
1
- import js_beautify from 'js-beautify';
2
1
  import * as i0 from '@angular/core';
3
- import { Injectable, Inject, EventEmitter, Output, Pipe, APP_INITIALIZER, Injector, NgModule, Component, ChangeDetectionStrategy, Input, ViewChild, ViewEncapsulation, Directive, HostBinding, HostListener, Optional, SkipSelf } from '@angular/core';
2
+ import { Injectable, Inject, EventEmitter, Output, Pipe, APP_INITIALIZER, Injector, NgModule, Component, Input, ChangeDetectionStrategy, ViewChild, ViewEncapsulation, Directive, HostBinding, HostListener, Optional, SkipSelf } from '@angular/core';
3
+ import * as dropin from 'braintree-web-drop-in';
4
+ import * as i2$1 from '@angular/forms';
5
+ import { FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
6
+ import js_beautify from 'js-beautify';
4
7
  import * as i1 from '@angular/router';
5
8
  import { NavigationEnd, NavigationStart, NavigationCancel, NavigationError, RouterModule } from '@angular/router';
6
9
  import * as i1$1 from '@angular/common/http';
7
10
  import { HttpResponse, HttpClientModule, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
8
11
  import { map, tap, mergeMap } from 'rxjs/operators';
9
- import { BehaviorSubject, Subject, filter, takeUntil, map as map$1, catchError, of, merge, forkJoin, timer, fromEvent } from 'rxjs';
12
+ import { BehaviorSubject, Subject, filter, takeUntil, map as map$1, catchError, of, merge, forkJoin, timer, fromEvent, firstValueFrom } from 'rxjs';
10
13
  import * as i4 from '@azure/msal-angular';
11
14
  import { MSAL_GUARD_CONFIG, MsalGuard, MsalInterceptor, MSAL_INTERCEPTOR_CONFIG, MSAL_INSTANCE, MsalService, MsalBroadcastService, MsalModule } from '@azure/msal-angular';
12
15
  import { BrowserUtils, EventType, InteractionStatus, InteractionType, InteractionRequiredAuthError, PromptValue, PublicClientApplication, LogLevel } from '@azure/msal-browser';
@@ -22,16 +25,15 @@ import * as i1$4 from 'ngx-toastr';
22
25
  import { ToastrModule } from 'ngx-toastr';
23
26
  import * as i1$5 from '@angular/platform-browser';
24
27
  import { v4 } from 'uuid';
25
- import * as i2 from '@angular/forms';
26
- import { FormControl, Validators, ReactiveFormsModule, FormsModule } from '@angular/forms';
28
+ import * as i2 from '@progress/kendo-angular-dialog';
29
+ import { DialogsModule } from '@progress/kendo-angular-dialog';
30
+ import { loadStripe } from '@stripe/stripe-js';
27
31
  import * as i1$6 from '@fortawesome/angular-fontawesome';
28
32
  import { FontAwesomeModule } from '@fortawesome/angular-fontawesome';
29
33
  import * as i1$7 from '@progress/kendo-angular-pager';
30
34
  import { PagerModule } from '@progress/kendo-angular-pager';
31
35
  import * as i3 from 'angular-froala-wysiwyg';
32
36
  import { FERootModule } from 'angular-froala-wysiwyg';
33
- import * as i2$1 from '@progress/kendo-angular-dialog';
34
- import { DialogsModule } from '@progress/kendo-angular-dialog';
35
37
  import * as i1$8 from 'ngx-captcha';
36
38
  import { NgxCaptchaModule } from 'ngx-captcha';
37
39
  import { faCheckCircle, faCircleXmark, faDatabase, faCopy } from '@fortawesome/free-solid-svg-icons';
@@ -48,8 +50,8 @@ import { IconsModule } from '@progress/kendo-angular-icons';
48
50
  @osovitny/anatoly
49
51
 
50
52
  Authors:
51
- Vadim Osovitny vadim@osovitny.com
52
- Anatoly Osovitny anatoly@osovitny.com
53
+ Vadim Osovitny vadim.osovitny@osovitny.com
54
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
53
55
 
54
56
  Created:
55
57
  26 Jun 2020
@@ -77,8 +79,8 @@ const ClientApps = AppCoreSettings?.clientApps;
77
79
  @osovitny/anatoly
78
80
 
79
81
  Authors:
80
- Vadim Osovitny vadim@osovitny.com
81
- Anatoly Osovitny anatoly@osovitny.com
82
+ Vadim Osovitny vadim.osovitny@osovitny.com
83
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
82
84
 
83
85
  Created:
84
86
  1 Apr 2024
@@ -119,8 +121,8 @@ const AppSettings = getAppSettingsByName(AppName);
119
121
  @osovitny/anatoly
120
122
 
121
123
  Authors:
122
- Vadim Osovitny vadim@osovitny.com
123
- Anatoly Osovitny anatoly@osovitny.com
124
+ Vadim Osovitny vadim.osovitny@osovitny.com
125
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
124
126
 
125
127
  Created:
126
128
  1 Apr 2024
@@ -146,8 +148,8 @@ const timeFormats = {
146
148
  @osovitny/anatoly
147
149
 
148
150
  Authors:
149
- Vadim Osovitny vadim@osovitny.com
150
- Anatoly Osovitny anatoly@osovitny.com
151
+ Vadim Osovitny vadim.osovitny@osovitny.com
152
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
151
153
 
152
154
  Created:
153
155
  29 June 2020
@@ -243,8 +245,8 @@ class Convert {
243
245
  @osovitny/anatoly
244
246
 
245
247
  Authors:
246
- Vadim Osovitny vadim@osovitny.com
247
- Anatoly Osovitny anatoly@osovitny.com
248
+ Vadim Osovitny vadim.osovitny@osovitny.com
249
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
248
250
 
249
251
  Created:
250
252
  10 Feb 2024
@@ -344,8 +346,8 @@ function getDateTimeFormat(timeZone) {
344
346
  @osovitny/anatoly
345
347
 
346
348
  Authors:
347
- Vadim Osovitny vadim@osovitny.com
348
- Anatoly Osovitny anatoly@osovitny.com
349
+ Vadim Osovitny vadim.osovitny@osovitny.com
350
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
349
351
 
350
352
  Created:
351
353
  10 Feb 2024
@@ -465,8 +467,8 @@ function isValidTimezoneIANAString(timeZoneString) {
465
467
  @osovitny/anatoly
466
468
 
467
469
  Authors:
468
- Vadim Osovitny vadim@osovitny.com
469
- Anatoly Osovitny anatoly@osovitny.com
470
+ Vadim Osovitny vadim.osovitny@osovitny.com
471
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
470
472
 
471
473
  Created:
472
474
  09 Feb 2024
@@ -525,8 +527,8 @@ class DateConvert {
525
527
  @osovitny/anatoly
526
528
 
527
529
  Authors:
528
- Vadim Osovitny vadim@osovitny.com
529
- Anatoly Osovitny anatoly@osovitny.com
530
+ Vadim Osovitny vadim.osovitny@osovitny.com
531
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
530
532
 
531
533
  Created:
532
534
  10 Sep 2022
@@ -558,12 +560,84 @@ class XmlFormatter {
558
560
  @osovitny/anatoly
559
561
 
560
562
  Authors:
561
- Vadim Osovitny vadim@osovitny.com
562
- Anatoly Osovitny anatoly@osovitny.com
563
+ Vadim Osovitny vadim.osovitny@osovitny.com
564
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
565
+
566
+ Created:
567
+ 11 Nov 2024
568
+
569
+ Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
570
+ </file>
571
+ */
572
+ var DiscountCodeType;
573
+ (function (DiscountCodeType) {
574
+ DiscountCodeType[DiscountCodeType["Standard"] = 1] = "Standard";
575
+ DiscountCodeType[DiscountCodeType["UseOnce"] = 2] = "UseOnce";
576
+ })(DiscountCodeType || (DiscountCodeType = {}));
577
+ var DiscountCodeStatus;
578
+ (function (DiscountCodeStatus) {
579
+ DiscountCodeStatus[DiscountCodeStatus["Exist"] = 1] = "Exist";
580
+ DiscountCodeStatus[DiscountCodeStatus["NotFound"] = 2] = "NotFound";
581
+ DiscountCodeStatus[DiscountCodeStatus["AlreadyUsed"] = 3] = "AlreadyUsed";
582
+ })(DiscountCodeStatus || (DiscountCodeStatus = {}));
583
+ var PaymentType;
584
+ (function (PaymentType) {
585
+ PaymentType[PaymentType["FullPayment"] = 1] = "FullPayment";
586
+ PaymentType[PaymentType["WeeklyPayment"] = 2] = "WeeklyPayment";
587
+ PaymentType[PaymentType["BiWeeklyPayment"] = 3] = "BiWeeklyPayment";
588
+ PaymentType[PaymentType["MonthlyPayment"] = 4] = "MonthlyPayment";
589
+ })(PaymentType || (PaymentType = {}));
590
+ var PaymentMethod;
591
+ (function (PaymentMethod) {
592
+ PaymentMethod[PaymentMethod["None"] = 1] = "None";
593
+ PaymentMethod[PaymentMethod["DigitalWallet"] = 2] = "DigitalWallet";
594
+ PaymentMethod[PaymentMethod["CreditCard"] = 3] = "CreditCard";
595
+ PaymentMethod[PaymentMethod["PayPal"] = 4] = "PayPal";
596
+ PaymentMethod[PaymentMethod["Stripe"] = 5] = "Stripe";
597
+ PaymentMethod[PaymentMethod["Venmo"] = 6] = "Venmo";
598
+ PaymentMethod[PaymentMethod["ApplePay"] = 7] = "ApplePay";
599
+ PaymentMethod[PaymentMethod["GooglePay"] = 8] = "GooglePay";
600
+ })(PaymentMethod || (PaymentMethod = {}));
601
+ var PaymentStage;
602
+ (function (PaymentStage) {
603
+ //PayPal/Stripe
604
+ PaymentStage[PaymentStage["External"] = 1] = "External";
605
+ PaymentStage[PaymentStage["Internal"] = 2] = "Internal";
606
+ })(PaymentStage || (PaymentStage = {}));
607
+
608
+ /*
609
+ <file>
610
+ Project:
611
+ @osovitny/anatoly
612
+
613
+ Authors:
614
+ Vadim Osovitny vadim.osovitny@osovitny.com
615
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
616
+
617
+ Created:
618
+ 11 Nov 2024
619
+
620
+ Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
621
+ </file>
622
+ */
623
+ var DataViewType;
624
+ (function (DataViewType) {
625
+ DataViewType["Grid"] = "grid";
626
+ DataViewType["List"] = "list";
627
+ })(DataViewType || (DataViewType = {}));
628
+
629
+ /*
630
+ <file>
631
+ Project:
632
+ @osovitny/anatoly
633
+
634
+ Authors:
635
+ Vadim Osovitny vadim.osovitny@osovitny.com
636
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
563
637
 
564
638
  Created:
565
639
  17 Jun 2018
566
-
640
+
567
641
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
568
642
  </file>
569
643
  */
@@ -603,8 +677,7 @@ class BaseGoService {
603
677
  @osovitny/anatoly
604
678
 
605
679
  Authors:
606
- Vadim Osovitny vadim@osovitny.com
607
- Anatoly Osovitny anatoly@osovitny.com
680
+ Vadim Osovitny vadim.osovitny@osovitny.com
608
681
 
609
682
  Created:
610
683
  13 Nov 2017
@@ -691,8 +764,8 @@ class ApiServiceBase {
691
764
  @osovitny/anatoly
692
765
 
693
766
  Authors:
694
- Vadim Osovitny vadim@osovitny.com
695
- Anatoly Osovitny anatoly@osovitny.com
767
+ Vadim Osovitny vadim.osovitny@osovitny.com
768
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
696
769
 
697
770
  Created:
698
771
  20 Sep 2023
@@ -733,8 +806,8 @@ class MSALStorage {
733
806
  @osovitny/anatoly
734
807
 
735
808
  Authors:
736
- Vadim Osovitny vadim@osovitny.com
737
- Anatoly Osovitny anatoly@osovitny.com
809
+ Vadim Osovitny vadim.osovitny@osovitny.com
810
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
738
811
 
739
812
  Created:
740
813
  20 Sep 2023
@@ -761,8 +834,8 @@ class MSALRedirect {
761
834
  @osovitny/anatoly
762
835
 
763
836
  Authors:
764
- Vadim Osovitny vadim@osovitny.com
765
- Anatoly Osovitny anatoly@osovitny.com
837
+ Vadim Osovitny vadim.osovitny@osovitny.com
838
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
766
839
 
767
840
  Created:
768
841
  20 Sep 2023
@@ -784,8 +857,8 @@ let MSALB2CConfig = MSALConfig?.b2c;
784
857
  @osovitny/anatoly
785
858
 
786
859
  Authors:
787
- Vadim Osovitny vadim@osovitny.com
788
- Anatoly Osovitny anatoly@osovitny.com
860
+ Vadim Osovitny vadim.osovitny@osovitny.com
861
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
789
862
 
790
863
  Created:
791
864
  27 Nov 2023
@@ -830,8 +903,8 @@ class MSALUtils {
830
903
  @osovitny/anatoly
831
904
 
832
905
  Authors:
833
- Vadim Osovitny vadim@osovitny.com
834
- Anatoly Osovitny anatoly@osovitny.com
906
+ Vadim Osovitny vadim.osovitny@osovitny.com
907
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
835
908
 
836
909
  Created:
837
910
  20 Sep 2023
@@ -869,8 +942,8 @@ class MSALB2C {
869
942
  @osovitny/anatoly
870
943
 
871
944
  Authors:
872
- Vadim Osovitny vadim@osovitny.com
873
- Anatoly Osovitny anatoly@osovitny.com
945
+ Vadim Osovitny vadim.osovitny@osovitny.com
946
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
874
947
 
875
948
  Created:
876
949
  20 Sep 2023
@@ -894,8 +967,8 @@ const PolicyType = {
894
967
  @osovitny/anatoly
895
968
 
896
969
  Authors:
897
- Vadim Osovitny vadim@osovitny.com
898
- Anatoly Osovitny anatoly@osovitny.com
970
+ Vadim Osovitny vadim.osovitny@osovitny.com
971
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
899
972
 
900
973
  Created:
901
974
  20 Sep 2023
@@ -913,12 +986,12 @@ const PolicyType = {
913
986
  @osovitny/anatoly
914
987
 
915
988
  Authors:
916
- Vadim Osovitny vadim@osovitny.com
917
- Anatoly Osovitny anatoly@osovitny.com
989
+ Vadim Osovitny vadim.osovitny@osovitny.com
990
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
918
991
 
919
992
  Created:
920
993
  17 Apr 2023
921
-
994
+
922
995
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
923
996
  </file>
924
997
  */
@@ -963,12 +1036,12 @@ class Stopwatch {
963
1036
  @osovitny/anatoly
964
1037
 
965
1038
  Authors:
966
- Vadim Osovitny vadim@osovitny.com
967
- Anatoly Osovitny anatoly@osovitny.com
1039
+ Vadim Osovitny vadim.osovitny@osovitny.com
1040
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
968
1041
 
969
1042
  Created:
970
1043
  26 Jun 2020
971
-
1044
+
972
1045
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
973
1046
  </file>
974
1047
  */
@@ -1027,8 +1100,8 @@ class SessionStorageService extends WebStorageService {
1027
1100
  @osovitny/anatoly
1028
1101
 
1029
1102
  Authors:
1030
- Vadim Osovitny vadim@osovitny.com
1031
- Anatoly Osovitny anatoly@osovitny.com
1103
+ Vadim Osovitny vadim.osovitny@osovitny.com
1104
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1032
1105
 
1033
1106
  Created:
1034
1107
  13 Nov 2017
@@ -1595,8 +1668,8 @@ class AuthService extends ApiServiceBase {
1595
1668
  @osovitny/anatoly
1596
1669
 
1597
1670
  Authors:
1598
- Vadim Osovitny vadim@osovitny.com
1599
- Anatoly Osovitny anatoly@osovitny.com
1671
+ Vadim Osovitny vadim.osovitny@osovitny.com
1672
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1600
1673
 
1601
1674
  Created:
1602
1675
  6 Dec 2018
@@ -1660,7 +1733,7 @@ class AuthenticationGuard extends MsalGuard {
1660
1733
  QA
1661
1734
 
1662
1735
  Authors:
1663
- Vadim Osovitny vadim@osovitny.com
1736
+ Vadim Osovitny vadim.osovitny@osovitny.com
1664
1737
 
1665
1738
  Created:
1666
1739
  6 Dec 2018
@@ -1678,8 +1751,8 @@ class AuthenticationGuard extends MsalGuard {
1678
1751
  @osovitny/anatoly
1679
1752
 
1680
1753
  Authors:
1681
- Vadim Osovitny vadim@osovitny.com
1682
- Anatoly Osovitny anatoly@osovitny.com
1754
+ Vadim Osovitny vadim.osovitny@osovitny.com
1755
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1683
1756
 
1684
1757
  Created:
1685
1758
  27 Nov 2023
@@ -1695,8 +1768,8 @@ class AuthenticationGuard extends MsalGuard {
1695
1768
  @osovitny/anatoly
1696
1769
 
1697
1770
  Authors:
1698
- Vadim Osovitny vadim@osovitny.com
1699
- Anatoly Osovitny anatoly@osovitny.com
1771
+ Vadim Osovitny vadim.osovitny@osovitny.com
1772
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1700
1773
 
1701
1774
  Created:
1702
1775
  26 Jun 2020
@@ -1759,8 +1832,8 @@ class LoadingService extends BehaviorSubject {
1759
1832
  @osovitny/anatoly
1760
1833
 
1761
1834
  Authors:
1762
- Vadim Osovitny vadim@osovitny.com
1763
- Anatoly Osovitny anatoly@osovitny.com
1835
+ Vadim Osovitny vadim.osovitny@osovitny.com
1836
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1764
1837
 
1765
1838
  Created:
1766
1839
  26 Jun 2020
@@ -1797,8 +1870,8 @@ class LoggingService {
1797
1870
  @osovitny/anatoly
1798
1871
 
1799
1872
  Authors:
1800
- Vadim Osovitny vadim@osovitny.com
1801
- Anatoly Osovitny anatoly@osovitny.com
1873
+ Vadim Osovitny vadim.osovitny@osovitny.com
1874
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1802
1875
 
1803
1876
  Created:
1804
1877
  25 March 2020
@@ -1940,12 +2013,12 @@ class AnatolyHttpInterceptor {
1940
2013
  @osovitny/anatoly
1941
2014
 
1942
2015
  Authors:
1943
- Vadim Osovitny vadim@osovitny.com
1944
- Anatoly Osovitny anatoly@osovitny.com
2016
+ Vadim Osovitny vadim.osovitny@osovitny.com
2017
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1945
2018
 
1946
2019
  Created:
1947
2020
  26 Jun 2020
1948
-
2021
+
1949
2022
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
1950
2023
  </file>
1951
2024
  */
@@ -1961,8 +2034,8 @@ function throwIfAlreadyLoaded(parentModule, moduleName) {
1961
2034
  @osovitny/anatoly
1962
2035
 
1963
2036
  Authors:
1964
- Vadim Osovitny vadim@osovitny.com
1965
- Anatoly Osovitny anatoly@osovitny.com
2037
+ Vadim Osovitny vadim.osovitny@osovitny.com
2038
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
1966
2039
 
1967
2040
  Created:
1968
2041
  09 Feb 2024
@@ -2133,8 +2206,8 @@ class StarterService extends ApiServiceBase {
2133
2206
  @osovitny/anatoly
2134
2207
 
2135
2208
  Authors:
2136
- Vadim Osovitny vadim@osovitny.com
2137
- Anatoly Osovitny anatoly@osovitny.com
2209
+ Vadim Osovitny vadim.osovitny@osovitny.com
2210
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2138
2211
 
2139
2212
  Created:
2140
2213
  15 Nov 2023
@@ -2174,8 +2247,8 @@ class StarterGuard {
2174
2247
  @osovitny/anatoly
2175
2248
 
2176
2249
  Authors:
2177
- Vadim Osovitny vadim@osovitny.com
2178
- Anatoly Osovitny anatoly@osovitny.com
2250
+ Vadim Osovitny vadim.osovitny@osovitny.com
2251
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2179
2252
 
2180
2253
  Created:
2181
2254
  26 Jun 2020
@@ -2205,8 +2278,8 @@ class Subs {
2205
2278
  @osovitny/anatoly
2206
2279
 
2207
2280
  Authors:
2208
- Vadim Osovitny vadim@osovitny.com
2209
- Anatoly Osovitny anatoly@osovitny.com
2281
+ Vadim Osovitny vadim.osovitny@osovitny.com
2282
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2210
2283
 
2211
2284
  Created:
2212
2285
  05 May 2020
@@ -2356,8 +2429,8 @@ class LocalizationService {
2356
2429
  @osovitny/anatoly
2357
2430
 
2358
2431
  Authors:
2359
- Vadim Osovitny vadim@osovitny.com
2360
- Anatoly Osovitny anatoly@osovitny.com
2432
+ Vadim Osovitny vadim.osovitny@osovitny.com
2433
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2361
2434
 
2362
2435
  Created:
2363
2436
  10 May 2020
@@ -2436,8 +2509,8 @@ class LocalizePipe {
2436
2509
  @osovitny/anatoly
2437
2510
 
2438
2511
  Authors:
2439
- Vadim Osovitny vadim@osovitny.com
2440
- Anatoly Osovitny anatoly@osovitny.com
2512
+ Vadim Osovitny vadim.osovitny@osovitny.com
2513
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2441
2514
 
2442
2515
  Created:
2443
2516
  05 May 2020
@@ -2523,8 +2596,8 @@ class LocalizationSettingsModule {
2523
2596
  @osovitny/anatoly
2524
2597
 
2525
2598
  Authors:
2526
- Vadim Osovitny vadim@osovitny.com
2527
- Anatoly Osovitny anatoly@osovitny.com
2599
+ Vadim Osovitny vadim.osovitny@osovitny.com
2600
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2528
2601
 
2529
2602
  Created:
2530
2603
  12 May 2020
@@ -2563,8 +2636,8 @@ class LocalizationModule {
2563
2636
  @osovitny/anatoly
2564
2637
 
2565
2638
  Authors:
2566
- Vadim Osovitny vadim@osovitny.com
2567
- Anatoly Osovitny anatoly@osovitny.com
2639
+ Vadim Osovitny vadim.osovitny@osovitny.com
2640
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2568
2641
 
2569
2642
  Created:
2570
2643
  2 July 2020
@@ -2602,8 +2675,8 @@ class L10nUtils {
2602
2675
  @osovitny/anatoly
2603
2676
 
2604
2677
  Authors:
2605
- Vadim Osovitny vadim@osovitny.com
2606
- Anatoly Osovitny anatoly@osovitny.com
2678
+ Vadim Osovitny vadim.osovitny@osovitny.com
2679
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2607
2680
 
2608
2681
  Created:
2609
2682
  26 Jun 2020
@@ -2639,8 +2712,8 @@ class GlobalErrorHandler {
2639
2712
  @osovitny/anatoly
2640
2713
 
2641
2714
  Authors:
2642
- Vadim Osovitny vadim@osovitny.com
2643
- Anatoly Osovitny anatoly@osovitny.com
2715
+ Vadim Osovitny vadim.osovitny@osovitny.com
2716
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2644
2717
 
2645
2718
  Created:
2646
2719
  3 March 2020
@@ -2752,8 +2825,8 @@ class Alerts {
2752
2825
  @osovitny/anatoly
2753
2826
 
2754
2827
  Authors:
2755
- Vadim Osovitny vadim@osovitny.com
2756
- Anatoly Osovitny anatoly@osovitny.com
2828
+ Vadim Osovitny vadim.osovitny@osovitny.com
2829
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2757
2830
 
2758
2831
  Created:
2759
2832
  2 Jun 2020
@@ -2768,8 +2841,8 @@ class Alerts {
2768
2841
  @osovitny/anatoly
2769
2842
 
2770
2843
  Authors:
2771
- Vadim Osovitny vadim@osovitny.com
2772
- Anatoly Osovitny anatoly@osovitny.com
2844
+ Vadim Osovitny vadim.osovitny@osovitny.com
2845
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2773
2846
 
2774
2847
  Created:
2775
2848
  2 Jun 2020
@@ -2846,8 +2919,8 @@ class NotificationService {
2846
2919
  @osovitny/anatoly
2847
2920
 
2848
2921
  Authors:
2849
- Vadim Osovitny vadim@osovitny.com
2850
- Anatoly Osovitny anatoly@osovitny.com
2922
+ Vadim Osovitny vadim.osovitny@osovitny.com
2923
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2851
2924
 
2852
2925
  Created:
2853
2926
  29 Nov 2020
@@ -2911,8 +2984,8 @@ class DigitalMarketingService {
2911
2984
  @osovitny/anatoly
2912
2985
 
2913
2986
  Authors:
2914
- Vadim Osovitny vadim@osovitny.com
2915
- Anatoly Osovitny anatoly@osovitny.com
2987
+ Vadim Osovitny vadim.osovitny@osovitny.com
2988
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2916
2989
 
2917
2990
  Created:
2918
2991
  29 Nov 2020
@@ -2982,8 +3055,8 @@ class GoogleAnalyticsService {
2982
3055
  @osovitny/anatoly
2983
3056
 
2984
3057
  Authors:
2985
- Vadim Osovitny vadim@osovitny.com
2986
- Anatoly Osovitny anatoly@osovitny.com
3058
+ Vadim Osovitny vadim.osovitny@osovitny.com
3059
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
2987
3060
 
2988
3061
  Created:
2989
3062
  26 Jun 2020
@@ -3055,8 +3128,83 @@ class IdleService {
3055
3128
  @osovitny/anatoly
3056
3129
 
3057
3130
  Authors:
3058
- Vadim Osovitny vadim@osovitny.com
3059
- Anatoly Osovitny anatoly@osovitny.com
3131
+ Vadim Osovitny vadim.osovitny@osovitny.com
3132
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3133
+
3134
+ Created:
3135
+ 14 Jun 2024
3136
+
3137
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3138
+ </file>
3139
+ */
3140
+ //Node
3141
+ class ScriptService {
3142
+ constructor(zone) {
3143
+ this.zone = zone;
3144
+ }
3145
+ getElemId(globalVar) {
3146
+ return `anatoly-script-${globalVar}`;
3147
+ }
3148
+ registerScript(url, globalVar, onReady) {
3149
+ const existingGlobalVar = window[globalVar];
3150
+ if (existingGlobalVar) {
3151
+ // global variable is present = script was already loaded
3152
+ this.zone.run(() => {
3153
+ onReady(existingGlobalVar);
3154
+ });
3155
+ return;
3156
+ }
3157
+ // prepare script elem
3158
+ const scriptElem = document.createElement('script');
3159
+ scriptElem.id = this.getElemId(globalVar);
3160
+ scriptElem.innerHTML = '';
3161
+ scriptElem.onload = () => {
3162
+ this.zone.run(() => {
3163
+ onReady(window[globalVar]);
3164
+ });
3165
+ };
3166
+ scriptElem.src = url;
3167
+ scriptElem.async = true;
3168
+ scriptElem.defer = true;
3169
+ // add script to header
3170
+ document.getElementsByTagName('head')[0].appendChild(scriptElem);
3171
+ }
3172
+ cleanup(globalVar) {
3173
+ // remove script from DOM
3174
+ const scriptElem = document.getElementById(this.getElemId(globalVar));
3175
+ if (scriptElem) {
3176
+ scriptElem.remove();
3177
+ }
3178
+ }
3179
+ getQueryString(queryParams) {
3180
+ let queryString = '';
3181
+ for (let i = 0; i < queryParams.length; i++) {
3182
+ const queryParam = queryParams[i];
3183
+ if (i === 0) {
3184
+ queryString += '?';
3185
+ }
3186
+ else {
3187
+ queryString += '&';
3188
+ }
3189
+ queryString += `${queryParam.name}=${queryParam.value}`;
3190
+ }
3191
+ return queryString;
3192
+ }
3193
+ static { this.ɵfac = function ScriptService_Factory(t) { return new (t || ScriptService)(i0.ɵɵinject(i0.NgZone)); }; }
3194
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ScriptService, factory: ScriptService.ɵfac }); }
3195
+ }
3196
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ScriptService, [{
3197
+ type: Injectable
3198
+ }], () => [{ type: i0.NgZone }], null); })();
3199
+
3200
+ /*
3201
+ <file>
3202
+ Project:
3203
+ @osovitny/anatoly
3204
+
3205
+ Authors:
3206
+ Vadim Osovitny vadim.osovitny@osovitny.com
3207
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3060
3208
 
3061
3209
  Created:
3062
3210
  2 May 2023
@@ -3079,8 +3227,8 @@ class Browser {
3079
3227
  @osovitny/anatoly
3080
3228
 
3081
3229
  Authors:
3082
- Vadim Osovitny vadim@osovitny.com
3083
- Anatoly Osovitny anatoly@osovitny.com
3230
+ Vadim Osovitny vadim.osovitny@osovitny.com
3231
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3084
3232
 
3085
3233
  Created:
3086
3234
  8 Aug 2022
@@ -3188,10 +3336,10 @@ class DOM {
3188
3336
  } else if (!DOM.hasClass(e, className)) {
3189
3337
  e.setAttribute('class', `${class} ${className}`);
3190
3338
  }
3191
-
3339
+
3192
3340
  return e;
3193
3341
  }
3194
-
3342
+
3195
3343
  public static removeClass(e: Element, className: string): Element {
3196
3344
  const class = e.getAttribute('class')
3197
3345
  if (class !== null && class !== '') {
@@ -3205,10 +3353,10 @@ class DOM {
3205
3353
  e.setAttribute('class', result);
3206
3354
  }
3207
3355
  }
3208
-
3356
+
3209
3357
  return e;
3210
3358
  }
3211
-
3359
+
3212
3360
  public static hasClass(e: Element, className: string): boolean {
3213
3361
  const class = e.getAttribute('class') || '';
3214
3362
  const r = new RegExp(`\\b${className}\\b`, '');
@@ -3232,8 +3380,8 @@ class DOM {
3232
3380
  @osovitny/anatoly
3233
3381
 
3234
3382
  Authors:
3235
- Vadim Osovitny vadim@osovitny.com
3236
- Anatoly Osovitny anatoly@osovitny.com
3383
+ Vadim Osovitny vadim.osovitny@osovitny.com
3384
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3237
3385
 
3238
3386
  Created:
3239
3387
  26 Jun 2020
@@ -3253,8 +3401,8 @@ class Guid {
3253
3401
  @osovitny/anatoly
3254
3402
 
3255
3403
  Authors:
3256
- Vadim Osovitny vadim@osovitny.com
3257
- Anatoly Osovitny anatoly@osovitny.com
3404
+ Vadim Osovitny vadim.osovitny@osovitny.com
3405
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3258
3406
 
3259
3407
  Created:
3260
3408
  14 Feb 2024
@@ -3330,8 +3478,8 @@ class QSUtils {
3330
3478
  @osovitny/anatoly
3331
3479
 
3332
3480
  Authors:
3333
- Vadim Osovitny vadim@osovitny.com
3334
- Anatoly Osovitny anatoly@osovitny.com
3481
+ Vadim Osovitny vadim.osovitny@osovitny.com
3482
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3335
3483
 
3336
3484
  Created:
3337
3485
  19 March 2020
@@ -3406,8 +3554,8 @@ class Utils {
3406
3554
  @osovitny/anatoly
3407
3555
 
3408
3556
  Authors:
3409
- Vadim Osovitny vadim@osovitny.com
3410
- Anatoly Osovitny anatoly@osovitny.com
3557
+ Vadim Osovitny vadim.osovitny@osovitny.com
3558
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3411
3559
 
3412
3560
  Created:
3413
3561
  2 Aug 2022
@@ -3423,55 +3571,76 @@ class Utils {
3423
3571
  @osovitny/anatoly
3424
3572
 
3425
3573
  Authors:
3426
- Vadim Osovitny vadim@osovitny.com
3427
- Anatoly Osovitny anatoly@osovitny.com
3574
+ Vadim Osovitny vadim.osovitny@osovitny.com
3575
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3428
3576
 
3429
3577
  Created:
3430
- 29 Apr 2018
3578
+ 28 Aug 2018
3431
3579
 
3432
3580
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3433
3581
  </file>
3434
3582
  */
3435
3583
  //Node
3436
- class GridReadServiceBase extends BehaviorSubject {
3437
- constructor(http) {
3438
- super([]);
3439
- this.http = http;
3440
- this.data = [];
3584
+ class ComponentBase {
3585
+ constructor() {
3586
+ this.isDevMode = false;
3587
+ this.subs = new Subs();
3588
+ //Component Data => usually loading from API
3589
+ this.dataLoading = true;
3590
+ this.dataLoaded = false;
3591
+ this.dataFound = false;
3592
+ this.title = '';
3593
+ this.isTitleVisible = true;
3594
+ this.isRequired = false;
3595
+ this.isDevMode = IsDevMode;
3596
+ this.applicationType = 1;
3597
+ this.applicationRoot = '/';
3598
+ if (AppSettings) {
3599
+ this.applicationType = AppSettings.id;
3600
+ if (AppSettings.root != '/') {
3601
+ this.applicationRoot = AppSettings.root;
3602
+ }
3603
+ }
3441
3604
  }
3442
- serializeParams(data) {
3443
- return data ? ('?' + $.param(data)) : '';
3605
+ ngOnInit() {
3444
3606
  }
3445
- read(params, success, error) {
3446
- if (this.data.length) {
3447
- return super.next(this.data);
3448
- }
3449
- var url = this.baseReadUrl;
3450
- if (typeof params === 'undefined') {
3451
- params = this.savedReadParams;
3452
- }
3453
- if (params) {
3454
- url = this.baseReadUrl + `${this.serializeParams(params)}`;
3455
- this.savedReadParams = params;
3456
- }
3457
- this.http.get(url).pipe(map(res => res)).subscribe({
3458
- next: (data) => {
3459
- super.next(data);
3460
- if (success)
3461
- success();
3462
- },
3463
- error: (e) => {
3464
- if (error)
3465
- error(e);
3466
- }
3467
- });
3607
+ ngOnDestroy() {
3608
+ this.subs.unsubscribe();
3468
3609
  }
3469
- static { this.ɵfac = function GridReadServiceBase_Factory(t) { return new (t || GridReadServiceBase)(i0.ɵɵinject(i1$1.HttpClient)); }; }
3470
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GridReadServiceBase, factory: GridReadServiceBase.ɵfac }); }
3610
+ getEntityId() {
3611
+ return QSUtils.getValueByName("id");
3612
+ }
3613
+ dataStartedLoading() {
3614
+ this.dataLoading = true;
3615
+ this.dataLoaded = false;
3616
+ this.dataFound = false;
3617
+ }
3618
+ dataLoadedAndNothingFound() {
3619
+ this.dataLoadedAndFound(false);
3620
+ }
3621
+ dataLoadedAndFound(found = true) {
3622
+ this.dataLoading = false;
3623
+ this.dataLoaded = true;
3624
+ this.dataFound = found;
3625
+ }
3626
+ static { this.ɵfac = function ComponentBase_Factory(t) { return new (t || ComponentBase)(); }; }
3627
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ComponentBase, selectors: [["ng-component"]], inputs: { classes: "classes", title: "title", isTitleVisible: "isTitleVisible", isRequired: "isRequired" }, decls: 0, vars: 0, template: function ComponentBase_Template(rf, ctx) { }, encapsulation: 2 }); }
3471
3628
  }
3472
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridReadServiceBase, [{
3473
- type: Injectable
3474
- }], () => [{ type: i1$1.HttpClient }], null); })();
3629
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentBase, [{
3630
+ type: Component,
3631
+ args: [{
3632
+ template: ''
3633
+ }]
3634
+ }], () => [], { classes: [{
3635
+ type: Input
3636
+ }], title: [{
3637
+ type: Input
3638
+ }], isTitleVisible: [{
3639
+ type: Input
3640
+ }], isRequired: [{
3641
+ type: Input
3642
+ }] }); })();
3643
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ComponentBase, { className: "ComponentBase", filePath: "lib\\ui\\components\\base\\components\\component.ts", lineNumber: 26 }); })();
3475
3644
 
3476
3645
  /*
3477
3646
  <file>
@@ -3479,74 +3648,136 @@ class GridReadServiceBase extends BehaviorSubject {
3479
3648
  @osovitny/anatoly
3480
3649
 
3481
3650
  Authors:
3482
- Vadim Osovitny vadim@osovitny.com
3483
- Anatoly Osovitny anatoly@osovitny.com
3651
+ Vadim Osovitny vadim.osovitny@osovitny.com
3652
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3484
3653
 
3485
3654
  Created:
3486
- 29 Apr 2018
3655
+ 20 Nov 2017
3487
3656
 
3488
3657
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3489
3658
  </file>
3490
3659
  */
3491
3660
  //Node
3492
- class GridEditServiceBase extends GridReadServiceBase {
3493
- constructor(http) {
3494
- super(http);
3495
- this.http = http;
3661
+ class EditComponentBase extends ComponentBase {
3662
+ constructor() {
3663
+ super();
3664
+ //Modes
3665
+ this.isAddMode = false;
3666
+ this.isEditMode = false;
3667
+ this.formSubmitted = false;
3668
+ this.controlName = null;
3669
+ this.isEditMode = QSUtils.idExists();
3670
+ this.isAddMode = !this.isEditMode;
3496
3671
  }
3497
- reset() {
3498
- this.data = [];
3672
+ isControlValid(name, frmGroup = null) {
3673
+ return !this.isControlInvalid(name, frmGroup);
3499
3674
  }
3500
- resetItem(dataItem) {
3501
- if (!dataItem) {
3502
- return;
3675
+ isControlInvalid(name, frmGroup = null) {
3676
+ if (typeof name === "undefined" || name == "") {
3677
+ return false;
3503
3678
  }
3504
- //find orignal data item
3505
- const originalDataItem = this.data.find(item => item.Id === dataItem.Id);
3506
- //revert changes
3507
- Object.assign(originalDataItem, dataItem);
3508
- super.next(this.data);
3679
+ let fg = frmGroup ? frmGroup : this.formGroup;
3680
+ if (!fg) {
3681
+ return false;
3682
+ }
3683
+ let control = fg.get(name);
3684
+ if (control) {
3685
+ return ((this.formSubmitted && control.invalid) || (control.touched && control.invalid));
3686
+ }
3687
+ return false;
3509
3688
  }
3510
- save(data, isNew, sucess) {
3511
- const action = isNew ? 'add' : 'update';
3512
- this.reset();
3513
- this.post(action, data).subscribe({
3514
- next: (data) => {
3515
- },
3516
- error: (e) => {
3517
- this.read();
3518
- },
3519
- complete: () => {
3520
- this.read();
3521
- if (sucess)
3522
- sucess();
3523
- }
3524
- });
3689
+ //FormGroup functions
3690
+ getFormValue(name, frmGroup = null) {
3691
+ let fg = frmGroup ? frmGroup : this.formGroup;
3692
+ return fg.controls[name].value;
3525
3693
  }
3526
- delete(data, sucess) {
3527
- this.reset();
3528
- const url = `${this.baseUrl}/delete${this.serializeParams(data)}`;
3529
- return this.http.delete(url).subscribe({
3530
- next: (data) => {
3531
- this.read();
3532
- if (sucess)
3533
- sucess();
3534
- },
3535
- error: (e) => {
3536
- this.read();
3537
- }
3538
- });
3694
+ setFormValue(name, value, frmGroup = null) {
3695
+ let fg = frmGroup ? frmGroup : this.formGroup;
3696
+ fg.controls[name].setValue(value);
3539
3697
  }
3540
- post(action, data) {
3541
- const url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
3542
- return this.http.post(url, data).pipe(map(res => res));
3698
+ getFormGroupValue(groupName, name, frmGroup = null) {
3699
+ let fg = frmGroup ? frmGroup : this.formGroup;
3700
+ return fg.controls[groupName].get(name).value;
3543
3701
  }
3544
- static { this.ɵfac = function GridEditServiceBase_Factory(t) { return new (t || GridEditServiceBase)(i0.ɵɵinject(i1$1.HttpClient)); }; }
3545
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GridEditServiceBase, factory: GridEditServiceBase.ɵfac }); }
3702
+ setFormGroupValue(groupName, name, value, frmGroup = null) {
3703
+ let fg = frmGroup ? frmGroup : this.formGroup;
3704
+ fg.controls[groupName].get(name).setValue(value);
3705
+ }
3706
+ /**
3707
+ * Add control to form group
3708
+ * @param name
3709
+ * @param formControl
3710
+ * @param frmGroup
3711
+ */
3712
+ addControl(name, formControl, frmGroup = null) {
3713
+ let fg = frmGroup ? frmGroup : this.formGroup;
3714
+ fg.addControl(name, formControl);
3715
+ }
3716
+ /**
3717
+ * Removes control from form group
3718
+ * @param name
3719
+ * @param frmGroup
3720
+ */
3721
+ removeControl(name, frmGroup = null) {
3722
+ let fg = frmGroup ? frmGroup : this.formGroup;
3723
+ if (fg.get(name)) {
3724
+ fg.removeControl(name);
3725
+ }
3726
+ }
3727
+ /**
3728
+ * return new form control
3729
+ * @param formState
3730
+ * @param validatorOrOpts
3731
+ * @param asyncValidator
3732
+ */
3733
+ createFormControl(formState, validatorOrOpts, asyncValidator) {
3734
+ return new FormControl(formState, validatorOrOpts, asyncValidator);
3735
+ }
3736
+ /**
3737
+ * Set error to control
3738
+ * @param controlName formControl name
3739
+ * @param err error expect {erroname: boolean} format
3740
+ * @param frmGroup
3741
+ */
3742
+ setControlError(controlName, err, frmGroup = null) {
3743
+ let fg = frmGroup ? frmGroup : this.formGroup;
3744
+ fg.get(controlName)?.setErrors(err);
3745
+ }
3746
+ /**
3747
+ * Set {invalid: true} for the specified form
3748
+ * @param controlName form control name
3749
+ * @param frmGroup
3750
+ */
3751
+ setInValidError(controlName, frmGroup = null) {
3752
+ let fg = frmGroup ? frmGroup : this.formGroup;
3753
+ fg.get(controlName)?.setErrors({ invalid: true });
3754
+ }
3755
+ /**
3756
+ * returns formgroup controls.
3757
+ * main use case is used in html pages
3758
+ */
3759
+ get fc() {
3760
+ return this.formGroup.controls;
3761
+ }
3762
+ get isNgModelBased() {
3763
+ return this.controlName == null;
3764
+ }
3765
+ static { this.ɵfac = function EditComponentBase_Factory(t) { return new (t || EditComponentBase)(); }; }
3766
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EditComponentBase, selectors: [["ng-component"]], inputs: { formGroup: "formGroup", formSubmitted: "formSubmitted", controlName: "controlName" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function EditComponentBase_Template(rf, ctx) { }, encapsulation: 2 }); }
3546
3767
  }
3547
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridEditServiceBase, [{
3548
- type: Injectable
3549
- }], () => [{ type: i1$1.HttpClient }], null); })();
3768
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditComponentBase, [{
3769
+ type: Component,
3770
+ args: [{
3771
+ template: ''
3772
+ }]
3773
+ }], () => [], { formGroup: [{
3774
+ type: Input
3775
+ }], formSubmitted: [{
3776
+ type: Input
3777
+ }], controlName: [{
3778
+ type: Input
3779
+ }] }); })();
3780
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditComponentBase, { className: "EditComponentBase", filePath: "lib\\ui\\components\\base\\components\\edit.component.ts", lineNumber: 28 }); })();
3550
3781
 
3551
3782
  /*
3552
3783
  <file>
@@ -3554,20 +3785,66 @@ class GridEditServiceBase extends GridReadServiceBase {
3554
3785
  @osovitny/anatoly
3555
3786
 
3556
3787
  Authors:
3557
- Vadim Osovitny vadim@osovitny.com
3558
- Anatoly Osovitny anatoly@osovitny.com
3788
+ Vadim Osovitny vadim.osovitny@osovitny.com
3789
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
3559
3790
 
3560
3791
  Created:
3561
- 30 April 2020
3792
+ 24 Jan 2022
3562
3793
 
3563
3794
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3564
3795
  </file>
3565
3796
  */
3566
- //App
3567
- const Urls = {
3568
- coreApiUrl: `${ApiUrl}/core`,
3569
- emailsApiUrl: `${ApiUrl}/emails`
3570
- };
3797
+ //Node
3798
+ class DialogBase extends EditComponentBase {
3799
+ get isOpen() {
3800
+ return this._isOpen;
3801
+ }
3802
+ set isOpen(value) {
3803
+ if (value) {
3804
+ if (this.osOnBeforeOpen) {
3805
+ this.osOnBeforeOpen();
3806
+ }
3807
+ this.opened.emit();
3808
+ }
3809
+ this._isOpen = value;
3810
+ }
3811
+ constructor() {
3812
+ super();
3813
+ //Private
3814
+ this._isOpen = false;
3815
+ //Public
3816
+ this.themeColor = "primary";
3817
+ //Events
3818
+ this.opened = new EventEmitter();
3819
+ this.closed = new EventEmitter();
3820
+ }
3821
+ open() {
3822
+ this.isOpen = true;
3823
+ }
3824
+ close(returnValue = "OK") {
3825
+ this.isOpen = false;
3826
+ this.closed.emit(returnValue);
3827
+ }
3828
+ cancel() {
3829
+ this.isOpen = false;
3830
+ this.closed.emit(-1);
3831
+ }
3832
+ static { this.ɵfac = function DialogBase_Factory(t) { return new (t || DialogBase)(); }; }
3833
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DialogBase, selectors: [["ng-component"]], inputs: { isOpen: "isOpen" }, outputs: { opened: "opened", closed: "closed" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DialogBase_Template(rf, ctx) { }, encapsulation: 2 }); }
3834
+ }
3835
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DialogBase, [{
3836
+ type: Component,
3837
+ args: [{
3838
+ template: ''
3839
+ }]
3840
+ }], () => [], { isOpen: [{
3841
+ type: Input
3842
+ }], opened: [{
3843
+ type: Output
3844
+ }], closed: [{
3845
+ type: Output
3846
+ }] }); })();
3847
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DialogBase, { className: "DialogBase", filePath: "lib\\ui\\components\\base\\dialog.ts", lineNumber: 27 }); })();
3571
3848
 
3572
3849
  /*
3573
3850
  <file>
@@ -3575,37 +3852,25 @@ const Urls = {
3575
3852
  @osovitny/anatoly
3576
3853
 
3577
3854
  Authors:
3578
- Vadim Osovitny vadim@osovitny.com
3579
- Anatoly Osovitny anatoly@osovitny.com
3855
+ Vadim Osovitny vadim.osovitny@osovitny.com
3580
3856
 
3581
3857
  Created:
3582
- 02 Aug 2022
3858
+ 11 Nov 2024
3583
3859
 
3584
- Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3860
+ Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
3585
3861
  </file>
3586
3862
  */
3587
- //Node
3588
- class CoreApiService extends ApiServiceBase {
3589
- constructor(http) {
3590
- super(http);
3591
- this.http = http;
3592
- this.baseUrl = Urls.coreApiUrl;
3863
+ const GAEvents = {
3864
+ login: {
3865
+ signin: 'osa_login_signin',
3866
+ signin_success: 'osa_login_signin_success',
3867
+ signup: 'osa_login_signup',
3868
+ signup_success: 'osa_login_signup_success'
3593
3869
  }
3594
- getTimezonesJsonFile() {
3595
- return this.getExternalJsonFile('anatoly', 'timezones.json');
3596
- }
3597
- getCountriesJsonFile() {
3598
- return this.getExternalJsonFile('anatoly', 'countries.json');
3599
- }
3600
- getUSStatesJsonFile() {
3601
- return this.getExternalJsonFile('anatoly', 'usStates.json');
3602
- }
3603
- static { this.ɵfac = function CoreApiService_Factory(t) { return new (t || CoreApiService)(i0.ɵɵinject(i1$1.HttpClient)); }; }
3604
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CoreApiService, factory: CoreApiService.ɵfac }); }
3605
- }
3606
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CoreApiService, [{
3607
- type: Injectable
3608
- }], () => [{ type: i1$1.HttpClient }], null); })();
3870
+ };
3871
+ const GABillingEvents = {
3872
+ payment: 'osa_billing_payment'
3873
+ };
3609
3874
 
3610
3875
  /*
3611
3876
  <file>
@@ -3613,24 +3878,44 @@ class CoreApiService extends ApiServiceBase {
3613
3878
  @osovitny/anatoly
3614
3879
 
3615
3880
  Authors:
3616
- Vadim Osovitny vadim@osovitny.com
3617
- Anatoly Osovitny anatoly@osovitny.com
3881
+ Vadim Osovitny vadim.osovitny@osovitny.com
3618
3882
 
3619
3883
  Created:
3620
- 16 Jun 2022
3884
+ 10 Nov 2024
3621
3885
 
3622
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3886
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
3623
3887
  </file>
3624
3888
  */
3625
3889
  //Node
3626
- class EmailsApiService extends ApiServiceBase {
3890
+ class PaymentsApiService extends ApiServiceBase {
3627
3891
  constructor(http) {
3628
3892
  super(http);
3629
3893
  this.http = http;
3630
- this.baseUrl = Urls.emailsApiUrl;
3631
- }
3632
- sendContactUs(captcha, name, email, topic, subject, message, success, error) {
3633
- return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe({
3894
+ this.baseUrl = `${ApiUrl}/billing/payments`;
3895
+ }
3896
+ //Stripe
3897
+ createStripeSession(amount, currency, name, description, image) {
3898
+ return this.post('createStripeSession', { amount, currency, name, description, image }, 'json');
3899
+ }
3900
+ //Braintree
3901
+ createBraintreeToken() {
3902
+ return this.get('createBraintreeToken');
3903
+ }
3904
+ pay(
3905
+ //System
3906
+ paidFor, payMethod,
3907
+ //Amount
3908
+ subtotal, promoCode, total, currency,
3909
+ //Payment method details (PayPal/Stripe/Braintree)
3910
+ payId, payStatus, payDetails, success, error) {
3911
+ return this.post('pay', {
3912
+ //System
3913
+ paidFor, payMethod,
3914
+ //Amount
3915
+ subtotal, promoCode, total, currency,
3916
+ //Payment method details (PayPal/Stripe/Braintree)
3917
+ payId, payStatus, payDetails,
3918
+ }, 'json').subscribe({
3634
3919
  next: (data) => {
3635
3920
  if (success)
3636
3921
  success(data);
@@ -3641,10 +3926,10 @@ class EmailsApiService extends ApiServiceBase {
3641
3926
  }
3642
3927
  });
3643
3928
  }
3644
- static { this.ɵfac = function EmailsApiService_Factory(t) { return new (t || EmailsApiService)(i0.ɵɵinject(i1$1.HttpClient)); }; }
3645
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EmailsApiService, factory: EmailsApiService.ɵfac }); }
3929
+ static { this.ɵfac = function PaymentsApiService_Factory(t) { return new (t || PaymentsApiService)(i0.ɵɵinject(i1$1.HttpClient)); }; }
3930
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaymentsApiService, factory: PaymentsApiService.ɵfac }); }
3646
3931
  }
3647
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EmailsApiService, [{
3932
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaymentsApiService, [{
3648
3933
  type: Injectable
3649
3934
  }], () => [{ type: i1$1.HttpClient }], null); })();
3650
3935
 
@@ -3654,16 +3939,163 @@ class EmailsApiService extends ApiServiceBase {
3654
3939
  @osovitny/anatoly
3655
3940
 
3656
3941
  Authors:
3657
- Vadim Osovitny vadim@osovitny.com
3658
- Anatoly Osovitny anatoly@osovitny.com
3942
+ Vadim Osovitny vadim.osovitny@osovitny.com
3943
+ Dhruv Agarwal dhruv.agarwal@osovitny.com
3659
3944
 
3660
3945
  Created:
3661
- 2 Aug 2022
3946
+ 11 Aug 2024
3662
3947
 
3663
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3948
+ Details:
3949
+ https://blog.thoughtram.io/angular/2017/02/21/using-zones-in-angular-for-better-performance.html
3950
+
3951
+ Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
3664
3952
  </file>
3665
3953
  */
3666
- //base
3954
+ //Node
3955
+ class PaymentsService {
3956
+ constructor(zone, api, ns, ga) {
3957
+ this.zone = zone;
3958
+ this.api = api;
3959
+ this.ns = ns;
3960
+ this.ga = ga;
3961
+ this.paymentInProgress = false;
3962
+ this.isPaymentFailed = false;
3963
+ this.subtotal = 0;
3964
+ this.discountCode = null;
3965
+ this.discountPercentage = null;
3966
+ this.discountAmount = null;
3967
+ this.total = 0;
3968
+ this.currency = 'USD';
3969
+ //Private Streams
3970
+ this._discountCodeApplied = new Subject();
3971
+ this._paymentAdded = new Subject();
3972
+ this._showStripeDialog = new Subject();
3973
+ this._showBraintreeDialog = new Subject();
3974
+ //Public Streams
3975
+ this.discountCodeApplied$ = this._discountCodeApplied.asObservable();
3976
+ this.paymentAdded$ = this._paymentAdded.asObservable();
3977
+ this.showStripeDialog$ = this._showStripeDialog.asObservable();
3978
+ this.showBraintreeDialog$ = this._showBraintreeDialog.asObservable();
3979
+ }
3980
+ setDefaults() {
3981
+ }
3982
+ setValues() {
3983
+ }
3984
+ //fires
3985
+ fireDiscountCodeApplied() {
3986
+ this._discountCodeApplied.next(this.discountCode);
3987
+ }
3988
+ firePaymentAdded(paymentId) {
3989
+ this._paymentAdded.next(paymentId);
3990
+ }
3991
+ //Public
3992
+ init() {
3993
+ this.setDefaults();
3994
+ this.setValues();
3995
+ }
3996
+ resetState() {
3997
+ this.subtotal = 0;
3998
+ this.total = 0;
3999
+ }
4000
+ getTotal() {
4001
+ let subtotal = this.subtotal;
4002
+ if (this.discountAmount != 0) {
4003
+ subtotal = subtotal - this.discountAmount;
4004
+ }
4005
+ else if (this.discountPercentage != 0) {
4006
+ subtotal = subtotal - (subtotal * (this.discountPercentage / 100));
4007
+ subtotal = +subtotal.toFixed(2);
4008
+ }
4009
+ return subtotal > 0 ? subtotal : 0;
4010
+ }
4011
+ //DiscountCode
4012
+ applyDiscountCode(discountCode, data) {
4013
+ if (!data) {
4014
+ return;
4015
+ }
4016
+ this.discountCode = discountCode;
4017
+ if (data.amount) {
4018
+ this.discountPercentage = 0;
4019
+ this.discountAmount = parseInt(data.amount);
4020
+ }
4021
+ else if (data.percentage) {
4022
+ this.discountPercentage = parseInt(data.percentage);
4023
+ this.discountAmount = 0;
4024
+ }
4025
+ this.fireDiscountCodeApplied();
4026
+ }
4027
+ getDiscountCodeAsString() {
4028
+ if (this.discountAmount > 0) {
4029
+ return "$" + this.discountAmount;
4030
+ }
4031
+ else if (this.discountPercentage > 0) {
4032
+ return this.discountPercentage + "%";
4033
+ }
4034
+ return '$0';
4035
+ }
4036
+ openStripePaymentDialog() {
4037
+ this._showStripeDialog.next(true);
4038
+ }
4039
+ openBraintreePaymentDialog() {
4040
+ this._showBraintreeDialog.next(true);
4041
+ }
4042
+ closeBraintreePaymentDialog() {
4043
+ this._showBraintreeDialog.next(false);
4044
+ }
4045
+ createStripeSession(title, description, image) {
4046
+ const amount = this.getTotal();
4047
+ const currency = this.currency;
4048
+ return this.api.createStripeSession(amount, currency, title, description, image);
4049
+ }
4050
+ createBraintreeToken() {
4051
+ return this.api.createBraintreeToken();
4052
+ }
4053
+ pay(paidFor, payId, payStatus, payDetails) {
4054
+ //GA
4055
+ this.ga.event(GABillingEvents.payment);
4056
+ let paidForAsString = JSON.stringify(paidFor);
4057
+ let payType = this.selectedPaymentType;
4058
+ let payMethod = this.selectedPaymentMethod;
4059
+ //Amount
4060
+ let subtotal = this.subtotal;
4061
+ let promoCode = this.discountCode;
4062
+ let total = this.getTotal();
4063
+ let currency = this.currency;
4064
+ if (total == 0) {
4065
+ payMethod = PaymentMethod.None;
4066
+ }
4067
+ this.zone.run(() => {
4068
+ this.api.pay(paidForAsString, payMethod,
4069
+ //Amount
4070
+ subtotal, promoCode, total, currency,
4071
+ //Payment method details (PayPal/Stripe/Braintree)
4072
+ payId, payStatus, payDetails, (data) => {
4073
+ if (!data || !data?.isPaymentValid) {
4074
+ this.paymentFailed(PaymentStage.External);
4075
+ return;
4076
+ }
4077
+ if (payMethod == PaymentMethod.CreditCard) {
4078
+ //this.closeBraintreePaymentDialog();
4079
+ }
4080
+ this.paymentInProgress = false;
4081
+ this.firePaymentAdded(data.paymentId);
4082
+ }, () => {
4083
+ this.paymentFailed(PaymentStage.External);
4084
+ });
4085
+ });
4086
+ }
4087
+ paymentFailed(stage) {
4088
+ this.paymentStage = stage;
4089
+ this.paymentInProgress = false;
4090
+ this.isPaymentFailed = true;
4091
+ this.ns.error("Payment Failed");
4092
+ }
4093
+ static { this.ɵfac = function PaymentsService_Factory(t) { return new (t || PaymentsService)(i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(PaymentsApiService), i0.ɵɵinject(NotificationService), i0.ɵɵinject(GoogleAnalyticsService)); }; }
4094
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PaymentsService, factory: PaymentsService.ɵfac }); }
4095
+ }
4096
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaymentsService, [{
4097
+ type: Injectable
4098
+ }], () => [{ type: i0.NgZone }, { type: PaymentsApiService }, { type: NotificationService }, { type: GoogleAnalyticsService }], null); })();
3667
4099
 
3668
4100
  /*
3669
4101
  <file>
@@ -3671,60 +4103,146 @@ class EmailsApiService extends ApiServiceBase {
3671
4103
  @osovitny/anatoly
3672
4104
 
3673
4105
  Authors:
3674
- Vadim Osovitny vadim@osovitny.com
3675
- Anatoly Osovitny anatoly@osovitny.com
4106
+ Dhruv Agarwal dhruv.agarwal@osovitny.com
3676
4107
 
3677
4108
  Created:
3678
- 14 Jun 2024
4109
+ 14 Aug 2024
3679
4110
 
3680
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
4111
+ Description:
4112
+ Credit Card payment form via braintree integration
4113
+
4114
+ Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
3681
4115
  </file>
3682
4116
  */
3683
4117
  //Node
3684
- class ScriptService {
3685
- constructor(zone) {
3686
- this.zone = zone;
4118
+ function BraintreeDialog_Conditional_0_Template(rf, ctx) { if (rf & 1) {
4119
+ const _r2 = i0.ɵɵgetCurrentView();
4120
+ i0.ɵɵelementStart(0, "div", 1)(1, "kendo-dialog", 2);
4121
+ i0.ɵɵlistener("close", function BraintreeDialog_Conditional_0_Template_kendo_dialog_close_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onClose()); });
4122
+ i0.ɵɵelementStart(2, "kendo-dialog-titlebar");
4123
+ i0.ɵɵtext(3, "Pay with Credit Card");
4124
+ i0.ɵɵelementEnd();
4125
+ i0.ɵɵelementStart(4, "div", 3);
4126
+ i0.ɵɵelement(5, "div", 4);
4127
+ i0.ɵɵelementEnd();
4128
+ i0.ɵɵelementStart(6, "kendo-dialog-actions", 5)(7, "button", 6);
4129
+ i0.ɵɵlistener("click", function BraintreeDialog_Conditional_0_Template_button_click_7_listener() { i0.ɵɵrestoreView(_r2); const ctx_r3 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r3.onPay()); });
4130
+ i0.ɵɵtext(8, "Pay");
4131
+ i0.ɵɵelementEnd();
4132
+ i0.ɵɵelementStart(9, "button", 7);
4133
+ i0.ɵɵlistener("click", function BraintreeDialog_Conditional_0_Template_button_click_9_listener() { i0.ɵɵrestoreView(_r2); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.onClose()); });
4134
+ i0.ɵɵtext(10, "Cancel");
4135
+ i0.ɵɵelementEnd()()()();
4136
+ } if (rf & 2) {
4137
+ const ctx_r0 = i0.ɵɵnextContext();
4138
+ i0.ɵɵadvance();
4139
+ i0.ɵɵproperty("width", 480)("height", 560)("themeColor", ctx_r0.themeColor);
4140
+ } }
4141
+ class BraintreeDialog extends DialogBase {
4142
+ constructor(ps, ns) {
4143
+ super();
4144
+ this.ps = ps;
4145
+ this.ns = ns;
3687
4146
  }
3688
- registerScript(url, globalVar, onReady) {
3689
- const existingGlobalVar = window[globalVar];
3690
- if (existingGlobalVar) {
3691
- // global variable is present = script was already loaded
3692
- this.zone.run(() => {
3693
- onReady(existingGlobalVar);
4147
+ ngOnInit() {
4148
+ this.setValues();
4149
+ }
4150
+ setValues() {
4151
+ this.ps.showBraintreeDialog$.subscribe((isOpen) => {
4152
+ this.isOpen = true;
4153
+ this.initializeEmbedForm();
4154
+ });
4155
+ }
4156
+ initializeEmbedForm() {
4157
+ const that = this;
4158
+ // let totalPrice = this.bs.getTotal().toString();
4159
+ // let currency = this.bs.currency;
4160
+ this.ps.createBraintreeToken().subscribe((response) => {
4161
+ if (response?.token) {
4162
+ dropin.create({
4163
+ authorization: response?.token,
4164
+ container: '#braintree-container',
4165
+ card: {
4166
+ cardholderName: true
4167
+ },
4168
+ //UNCOMMENT BELOW FOR GOOGLEPAY / VENMO
4169
+ // googlePay: {
4170
+ // merchantId: '',
4171
+ // transactionInfo: {
4172
+ // currencyCode: currency,
4173
+ // totalPriceStatus: 'FINAL',
4174
+ // totalPrice: totalPrice,
4175
+ // }
4176
+ // },
4177
+ // venmo: {
4178
+ // allowNewBrowserTab: false
4179
+ // },
4180
+ dataCollector: true
4181
+ }, function (createErr, instance) {
4182
+ if (instance) {
4183
+ that.braintreeInstance = instance;
4184
+ instance._dataCollector._instance.getDeviceData().then((deviceData) => {
4185
+ that.deviceData = deviceData;
4186
+ });
4187
+ }
4188
+ else {
4189
+ that.ns.error('Credit Card Payment is facing issues. Please try other payment methods.');
4190
+ that.closeDialog();
4191
+ }
4192
+ });
4193
+ }
4194
+ });
4195
+ }
4196
+ submitPayment(payload) {
4197
+ this.ps.pay(this.paidFor, payload.nonce, 'COMPLETED', this.deviceData);
4198
+ }
4199
+ closeDialog() {
4200
+ super.close();
4201
+ this.braintreeInstance = null;
4202
+ }
4203
+ //Events
4204
+ onPay() {
4205
+ if (this.braintreeInstance && this.deviceData) {
4206
+ const that = this;
4207
+ this.braintreeInstance.requestPaymentMethod(function (requestPaymentErr, payload) {
4208
+ that.submitPayment(payload);
3694
4209
  });
3695
- return;
3696
4210
  }
3697
- // prepare script elem
3698
- const scriptElem = document.createElement('script');
3699
- scriptElem.id = this.getElemId(globalVar);
3700
- scriptElem.innerHTML = '';
3701
- scriptElem.onload = () => {
3702
- this.zone.run(() => {
3703
- onReady(window[globalVar]);
3704
- });
3705
- };
3706
- scriptElem.src = url;
3707
- scriptElem.async = true;
3708
- scriptElem.defer = true;
3709
- // add script to header
3710
- document.getElementsByTagName('head')[0].appendChild(scriptElem);
3711
4211
  }
3712
- cleanup(globalVar) {
3713
- // remove script from DOM
3714
- const scriptElem = document.getElementById(this.getElemId(globalVar));
3715
- if (scriptElem) {
3716
- scriptElem.remove();
4212
+ onClose() {
4213
+ const closeDialog = this.closeDialog;
4214
+ if (this.braintreeInstance) {
4215
+ this.braintreeInstance.teardown(function (err) {
4216
+ closeDialog();
4217
+ });
4218
+ }
4219
+ else {
4220
+ closeDialog();
3717
4221
  }
3718
4222
  }
3719
- getElemId(globalVar) {
3720
- return `anatoly-script-${globalVar}`;
4223
+ get visible() {
4224
+ return this.isOpen && this.ps.getTotal() > 0;
3721
4225
  }
3722
- static { this.ɵfac = function ScriptService_Factory(t) { return new (t || ScriptService)(i0.ɵɵinject(i0.NgZone)); }; }
3723
- static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: ScriptService, factory: ScriptService.ɵfac }); }
4226
+ static { this.ɵfac = function BraintreeDialog_Factory(t) { return new (t || BraintreeDialog)(i0.ɵɵdirectiveInject(PaymentsService), i0.ɵɵdirectiveInject(NotificationService)); }; }
4227
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: BraintreeDialog, selectors: [["anatoly-payments-braintree-dialog"]], inputs: { paidFor: "paidFor", title: "title", description: "description", image: "image" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "send-message__kendo-dialog"], [1, "send-message__kendo-dialog"], [3, "width", "height", "themeColor", "close"], [1, "kendo-dialog-content"], ["id", "braintree-container"], ["layout", "end"], ["type", "button", 1, "btn", "btn-sm", "btn-success", 3, "click"], ["type", "button", 1, "btn", "btn-sm", "btn-danger", 3, "click"]], template: function BraintreeDialog_Template(rf, ctx) { if (rf & 1) {
4228
+ i0.ɵɵtemplate(0, BraintreeDialog_Conditional_0_Template, 11, 3, "div", 0);
4229
+ } if (rf & 2) {
4230
+ i0.ɵɵconditional(0, ctx.visible ? 0 : -1);
4231
+ } }, dependencies: [i2.DialogComponent, i2.DialogTitleBarComponent, i2.DialogActionsComponent], encapsulation: 2 }); }
3724
4232
  }
3725
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ScriptService, [{
3726
- type: Injectable
3727
- }], () => [{ type: i0.NgZone }], null); })();
4233
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(BraintreeDialog, [{
4234
+ type: Component,
4235
+ args: [{ selector: 'anatoly-payments-braintree-dialog', template: "@if (visible) {\r\n <div class='send-message__kendo-dialog'>\r\n <kendo-dialog [width]='480' [height]='560' [themeColor]='themeColor' (close)='onClose()'>\r\n <kendo-dialog-titlebar>Pay with Credit Card</kendo-dialog-titlebar>\r\n <div class='kendo-dialog-content'>\r\n <div id=\"braintree-container\"></div>\r\n </div>\r\n <kendo-dialog-actions layout='end'>\r\n <button class='btn btn-sm btn-success' type='button' (click)='onPay()'>Pay</button>\r\n <button class='btn btn-sm btn-danger' type='button' (click)='onClose()'>Cancel</button>\r\n </kendo-dialog-actions>\r\n </kendo-dialog>\r\n </div>\r\n}\r\n" }]
4236
+ }], () => [{ type: PaymentsService }, { type: NotificationService }], { paidFor: [{
4237
+ type: Input
4238
+ }], title: [{
4239
+ type: Input
4240
+ }], description: [{
4241
+ type: Input
4242
+ }], image: [{
4243
+ type: Input
4244
+ }] }); })();
4245
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(BraintreeDialog, { className: "BraintreeDialog", filePath: "lib\\billing\\payments\\components\\braintree\\braintree.component.ts", lineNumber: 32 }); })();
3728
4246
 
3729
4247
  /*
3730
4248
  <file>
@@ -3732,8 +4250,7 @@ class ScriptService {
3732
4250
  @osovitny/anatoly
3733
4251
 
3734
4252
  Authors:
3735
- Vadim Osovitny vadim@osovitny.com
3736
- Anatoly Osovitny anatoly@osovitny.com
4253
+ Vadim Osovitny vadim.osovitny@osovitny.com
3737
4254
 
3738
4255
  Created:
3739
4256
  14 Jun 2024
@@ -3741,16 +4258,17 @@ class ScriptService {
3741
4258
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
3742
4259
  </file>
3743
4260
  */
4261
+ //Node
3744
4262
  class PayPalScriptService {
3745
- constructor(scriptService) {
3746
- this.scriptService = scriptService;
4263
+ constructor(ss) {
4264
+ this.ss = ss;
3747
4265
  this.paypalWindowName = 'paypal';
3748
4266
  }
3749
4267
  registerPayPalScript(config, onReady) {
3750
- this.scriptService.registerScript(this.getUrlForConfig(config), this.paypalWindowName, onReady);
4268
+ this.ss.registerScript(this.getUrlForConfig(config), this.paypalWindowName, onReady);
3751
4269
  }
3752
4270
  destroyPayPalScript() {
3753
- this.scriptService.cleanup(this.paypalWindowName);
4271
+ this.ss.cleanup(this.paypalWindowName);
3754
4272
  }
3755
4273
  getUrlForConfig(config) {
3756
4274
  const params = [
@@ -3798,21 +4316,7 @@ class PayPalScriptService {
3798
4316
  if (config.extraParams) {
3799
4317
  params.push(...config.extraParams);
3800
4318
  }
3801
- return `https://www.paypal.com/sdk/js${this.getQueryString(params)}`;
3802
- }
3803
- getQueryString(queryParams) {
3804
- let queryString = '';
3805
- for (let i = 0; i < queryParams.length; i++) {
3806
- const queryParam = queryParams[i];
3807
- if (i === 0) {
3808
- queryString += '?';
3809
- }
3810
- else {
3811
- queryString += '&';
3812
- }
3813
- queryString += `${queryParam.name}=${queryParam.value}`;
3814
- }
3815
- return queryString;
4319
+ return `https://www.paypal.com/sdk/js${this.ss.getQueryString(params)}`;
3816
4320
  }
3817
4321
  static { this.ɵfac = function PayPalScriptService_Factory(t) { return new (t || PayPalScriptService)(i0.ɵɵinject(ScriptService)); }; }
3818
4322
  static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PayPalScriptService, factory: PayPalScriptService.ɵfac }); }
@@ -3827,8 +4331,7 @@ class PayPalScriptService {
3827
4331
  @osovitny/anatoly
3828
4332
 
3829
4333
  Authors:
3830
- Vadim Osovitny vadim@osovitny.com
3831
- Anatoly Osovitny anatoly@osovitny.com
4334
+ Vadim Osovitny vadim.osovitny@osovitny.com
3832
4335
 
3833
4336
  Created:
3834
4337
  14 Jun 2024
@@ -4102,7 +4605,7 @@ class PayPalComponent {
4102
4605
  });
4103
4606
  }
4104
4607
  static { this.ɵfac = function PayPalComponent_Factory(t) { return new (t || PayPalComponent)(i0.ɵɵdirectiveInject(PayPalScriptService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(i0.NgZone)); }; }
4105
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PayPalComponent, selectors: [["anatoly-paypal"]], viewQuery: function PayPalComponent_Query(rf, ctx) { if (rf & 1) {
4608
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PayPalComponent, selectors: [["anatoly-payments-paypal-container"]], viewQuery: function PayPalComponent_Query(rf, ctx) { if (rf & 1) {
4106
4609
  i0.ɵɵviewQuery(_c0$f, 5);
4107
4610
  } if (rf & 2) {
4108
4611
  let _t;
@@ -4117,7 +4620,7 @@ class PayPalComponent {
4117
4620
  type: Component,
4118
4621
  args: [{
4119
4622
  changeDetection: ChangeDetectionStrategy.OnPush,
4120
- selector: "anatoly-paypal",
4623
+ selector: 'anatoly-payments-paypal-container',
4121
4624
  template: `
4122
4625
  <div #payPalButtonContainer [id]="payPalButtonContainerId"></div>
4123
4626
  `,
@@ -4132,23 +4635,272 @@ class PayPalComponent {
4132
4635
  type: ViewChild,
4133
4636
  args: ["payPalButtonContainer", { static: false }]
4134
4637
  }] }); })();
4135
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PayPalComponent, { className: "PayPalComponent", filePath: "lib\\payments\\PayPal\\components\\paypal.component.ts", lineNumber: 58 }); })();
4638
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PayPalComponent, { className: "PayPalComponent", filePath: "lib\\billing\\payments\\components\\paypal\\paypal.component.ts", lineNumber: 57 }); })();
4136
4639
 
4137
4640
  /*
4138
4641
  <file>
4139
4642
  Project:
4140
- @osovitny/anatoly
4643
+ Atlas Cross
4141
4644
 
4142
4645
  Authors:
4143
- Vadim Osovitny vadim@osovitny.com
4144
- Anatoly Osovitny anatoly@osovitny.com
4646
+ Vadim Osovitny vadim.osovitny@osovitny.com
4145
4647
 
4146
4648
  Created:
4147
4649
  14 Jun 2024
4148
4650
 
4651
+ Description:
4652
+ https://github.com/braintree/braintree-web-drop-in/issues/433
4653
+ It's impossible to trigger the paypal flow programmatically, as opening a popup window must be as a result of
4654
+ a direct user action. If it is not, the browser will usually block it.
4655
+
4656
+ https://stackoverflow.com/questions/43276570/trigger-paypal-checkout-button-click
4657
+ This isn't something that's supported by the PayPal button right now. The official policy is, only a click on the button
4658
+ itself should open a checkout window.
4659
+
4660
+ shipping_preference:
4661
+ https://developer.paypal.com/docs/api/payments/v1/?mark=shipping_preference%20#definition-application_context
4662
+
4663
+ Copyright (c) 2023-2024 Atlas Cross Inc. All rights reserved.
4664
+ </file>
4665
+ */
4666
+ //Node
4667
+ function PaypalButtonComponent_Conditional_0_Template(rf, ctx) { if (rf & 1) {
4668
+ i0.ɵɵelement(0, "anatoly-payments-paypal-container", 0);
4669
+ } if (rf & 2) {
4670
+ const ctx_r0 = i0.ɵɵnextContext();
4671
+ i0.ɵɵproperty("config", ctx_r0.payPalConfig);
4672
+ } }
4673
+ class PaypalButtonComponent extends ComponentBase {
4674
+ constructor(ps) {
4675
+ super();
4676
+ this.ps = ps;
4677
+ this.paidForTitle = 'Payment for Prodiuct';
4678
+ }
4679
+ ngOnInit() {
4680
+ this.setDefaults();
4681
+ this.setValues();
4682
+ }
4683
+ setDefaults() {
4684
+ }
4685
+ setValues() {
4686
+ this.initPayPal();
4687
+ this.ps.discountCodeApplied$.subscribe((data) => {
4688
+ this.initPayPal();
4689
+ });
4690
+ }
4691
+ initPayPal() {
4692
+ let that = this;
4693
+ let clientId = AppCoreSettings.external.pm.payPal.clientId;
4694
+ let totalPrice = this.ps.getTotal().toString();
4695
+ let currency = this.ps.currency;
4696
+ this.payPalConfig = {
4697
+ currency: currency,
4698
+ clientId: clientId,
4699
+ advanced: {
4700
+ commit: 'true',
4701
+ extraQueryParams: [
4702
+ {
4703
+ name: "disable-funding",
4704
+ value: "credit,card"
4705
+ }
4706
+ ]
4707
+ },
4708
+ style: {
4709
+ color: 'white'
4710
+ },
4711
+ createOrderOnClient: (data) => ({
4712
+ intent: 'CAPTURE',
4713
+ application_context: {
4714
+ shipping_preference: "NO_SHIPPING"
4715
+ },
4716
+ purchase_units: [
4717
+ {
4718
+ amount: {
4719
+ currency_code: currency,
4720
+ value: totalPrice,
4721
+ breakdown: {
4722
+ item_total: {
4723
+ currency_code: currency,
4724
+ value: totalPrice
4725
+ }
4726
+ }
4727
+ },
4728
+ items: [
4729
+ {
4730
+ name: this.paidForTitle,
4731
+ quantity: '1',
4732
+ category: 'DIGITAL_GOODS',
4733
+ unit_amount: {
4734
+ currency_code: currency,
4735
+ value: totalPrice
4736
+ },
4737
+ }
4738
+ ]
4739
+ }
4740
+ ]
4741
+ }),
4742
+ onApprove: (data, actions) => {
4743
+ return actions.order.capture().then(function (orderData) {
4744
+ try {
4745
+ let payment = orderData.purchase_units[0].payments.captures[0];
4746
+ let paymentId = payment.id;
4747
+ let status = payment.status;
4748
+ let amount = payment.amount.value;
4749
+ let currencyCode = payment.amount.currency_code;
4750
+ let details = JSON.stringify(orderData);
4751
+ that.ps.pay(that.paidFor, paymentId, status, details);
4752
+ }
4753
+ catch {
4754
+ that.ps.paymentFailed(PaymentStage.External);
4755
+ }
4756
+ });
4757
+ },
4758
+ onCancel: (data, actions) => {
4759
+ that.ps.paymentInProgress = false;
4760
+ },
4761
+ onError: err => {
4762
+ that.ps.paymentInProgress = false;
4763
+ },
4764
+ onClick: (data, actions) => {
4765
+ that.ps.paymentInProgress = true;
4766
+ }
4767
+ };
4768
+ }
4769
+ get visible() {
4770
+ return this.ps.selectedPaymentMethod == PaymentMethod.PayPal && this.ps.getTotal() > 0;
4771
+ }
4772
+ static { this.ɵfac = function PaypalButtonComponent_Factory(t) { return new (t || PaypalButtonComponent)(i0.ɵɵdirectiveInject(PaymentsService)); }; }
4773
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PaypalButtonComponent, selectors: [["anatoly-payments-paypal-button"]], inputs: { paidForTitle: "paidForTitle", paidFor: "paidFor" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [[3, "config"]], template: function PaypalButtonComponent_Template(rf, ctx) { if (rf & 1) {
4774
+ i0.ɵɵtemplate(0, PaypalButtonComponent_Conditional_0_Template, 1, 1, "anatoly-payments-paypal-container", 0);
4775
+ } if (rf & 2) {
4776
+ i0.ɵɵconditional(0, ctx.visible ? 0 : -1);
4777
+ } }, dependencies: [PayPalComponent], encapsulation: 2 }); }
4778
+ }
4779
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PaypalButtonComponent, [{
4780
+ type: Component,
4781
+ args: [{ selector: 'anatoly-payments-paypal-button', template: "@if (visible) {\r\n <anatoly-payments-paypal-container [config]='payPalConfig' />\r\n}\r\n" }]
4782
+ }], () => [{ type: PaymentsService }], { paidForTitle: [{
4783
+ type: Input
4784
+ }], paidFor: [{
4785
+ type: Input
4786
+ }] }); })();
4787
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PaypalButtonComponent, { className: "PaypalButtonComponent", filePath: "lib\\billing\\payments\\components\\paypal\\paypal-button.component.ts", lineNumber: 42 }); })();
4788
+
4789
+ /*
4790
+ <file>
4791
+ Project:
4792
+ @osovitny/anatoly
4793
+
4794
+ Authors:
4795
+ Dhruv Agarwal dhruv.agarwal@osovitny.com
4796
+
4797
+ Created:
4798
+ 5 Aug 2024
4799
+
4800
+ Description:
4801
+ Credit Card payment form via stripe integration
4802
+
4803
+ Copyright (c) 2016-2024 Osovitny Inc. All rights reserved.
4804
+ </file>
4805
+ */
4806
+ //Node
4807
+ function StripeDialog_Conditional_0_Template(rf, ctx) { if (rf & 1) {
4808
+ const _r2 = i0.ɵɵgetCurrentView();
4809
+ i0.ɵɵelementStart(0, "div", 1)(1, "kendo-dialog", 2);
4810
+ i0.ɵɵlistener("close", function StripeDialog_Conditional_0_Template_kendo_dialog_close_1_listener() { i0.ɵɵrestoreView(_r2); const ctx_r1 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r1.onClose()); });
4811
+ i0.ɵɵelementStart(2, "kendo-dialog-titlebar");
4812
+ i0.ɵɵtext(3, "Pay with Stripe");
4813
+ i0.ɵɵelementEnd();
4814
+ i0.ɵɵelementStart(4, "div", 3);
4815
+ i0.ɵɵelement(5, "div", 4);
4816
+ i0.ɵɵelementEnd()()();
4817
+ } if (rf & 2) {
4818
+ const ctx_r0 = i0.ɵɵnextContext();
4819
+ i0.ɵɵadvance();
4820
+ i0.ɵɵproperty("width", 1080)("height", 800)("themeColor", ctx_r0.themeColor);
4821
+ } }
4822
+ class StripeDialog extends DialogBase {
4823
+ constructor(ps) {
4824
+ super();
4825
+ this.ps = ps;
4826
+ }
4827
+ ngOnInit() {
4828
+ this.setValues();
4829
+ }
4830
+ setValues() {
4831
+ this.ps.showStripeDialog$.subscribe(async () => {
4832
+ this.isOpen = true;
4833
+ await this.initializeEmbedForm();
4834
+ });
4835
+ }
4836
+ async initializeEmbedForm() {
4837
+ let stripePk = AppCoreSettings.external.pm.stripe.publishableKey;
4838
+ this.stripe = await loadStripe(stripePk);
4839
+ const that = this;
4840
+ this.stripeCheckout = await this.stripe.initEmbeddedCheckout({
4841
+ fetchClientSecret: async () => {
4842
+ const response = await firstValueFrom(that.ps.createStripeSession(this.title, this.description, this.image));
4843
+ if (response) {
4844
+ that.sessionId = response.sessionId;
4845
+ return response?.sessionSecret ? response.sessionSecret : '';
4846
+ }
4847
+ return '';
4848
+ },
4849
+ onComplete: () => {
4850
+ that.ps.pay(this.paidFor, this.sessionId, 'COMPLETED', '');
4851
+ that.onClose();
4852
+ }
4853
+ });
4854
+ // Mount Checkout
4855
+ this.stripeCheckout.mount('#stripeCheckout');
4856
+ }
4857
+ //Events
4858
+ onClose() {
4859
+ if (this.stripeCheckout) {
4860
+ // Destroy Checkout instance
4861
+ this.stripeCheckout.destroy();
4862
+ }
4863
+ super.close();
4864
+ }
4865
+ get visible() {
4866
+ return this.isOpen && this.ps.getTotal() > 0;
4867
+ }
4868
+ static { this.ɵfac = function StripeDialog_Factory(t) { return new (t || StripeDialog)(i0.ɵɵdirectiveInject(PaymentsService)); }; }
4869
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: StripeDialog, selectors: [["anatoly-payments-stripe-dialog"]], inputs: { paidFor: "paidFor", title: "title", description: "description", image: "image" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 1, vars: 1, consts: [["class", "send-message__kendo-dialog"], [1, "send-message__kendo-dialog"], [3, "width", "height", "themeColor", "close"], [1, "kendo-dialog-content"], ["id", "stripeCheckout"]], template: function StripeDialog_Template(rf, ctx) { if (rf & 1) {
4870
+ i0.ɵɵtemplate(0, StripeDialog_Conditional_0_Template, 6, 3, "div", 0);
4871
+ } if (rf & 2) {
4872
+ i0.ɵɵconditional(0, ctx.visible ? 0 : -1);
4873
+ } }, dependencies: [i2.DialogComponent, i2.DialogTitleBarComponent], encapsulation: 2 }); }
4874
+ }
4875
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(StripeDialog, [{
4876
+ type: Component,
4877
+ args: [{ selector: 'anatoly-payments-stripe-dialog', template: "@if (visible) {\r\n <div class='send-message__kendo-dialog'>\r\n <kendo-dialog [width]='1080' [height]='800' [themeColor]='themeColor' (close)='onClose()'>\r\n <kendo-dialog-titlebar>Pay with Stripe</kendo-dialog-titlebar> \r\n <div class='kendo-dialog-content'>\r\n <div id=\"stripeCheckout\"></div>\r\n </div>\r\n </kendo-dialog>\r\n </div>\r\n}\r\n" }]
4878
+ }], () => [{ type: PaymentsService }], { paidFor: [{
4879
+ type: Input
4880
+ }], title: [{
4881
+ type: Input
4882
+ }], description: [{
4883
+ type: Input
4884
+ }], image: [{
4885
+ type: Input
4886
+ }] }); })();
4887
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(StripeDialog, { className: "StripeDialog", filePath: "lib\\billing\\payments\\components\\stripe\\stripe.component.ts", lineNumber: 33 }); })();
4888
+
4889
+ /*
4890
+ <file>
4891
+ Project:
4892
+ @osovitny/anatoly
4893
+
4894
+ Authors:
4895
+ Vadim Osovitny vadim.osovitny@osovitny.com
4896
+
4897
+ Created:
4898
+ 11 Nov 2024
4899
+
4149
4900
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
4150
4901
  </file>
4151
4902
  */
4903
+ //braintree
4152
4904
 
4153
4905
  /*
4154
4906
  <file>
@@ -4156,16 +4908,15 @@ class PayPalComponent {
4156
4908
  @osovitny/anatoly
4157
4909
 
4158
4910
  Authors:
4159
- Vadim Osovitny vadim@osovitny.com
4160
- Anatoly Osovitny anatoly@osovitny.com
4911
+ Vadim Osovitny vadim.osovitny@osovitny.com
4161
4912
 
4162
4913
  Created:
4163
- 14 Jun 2024
4914
+ 8 Nov 2024
4164
4915
 
4165
4916
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
4166
4917
  </file>
4167
4918
  */
4168
- //services
4919
+ //Payments
4169
4920
 
4170
4921
  /*
4171
4922
  <file>
@@ -4173,76 +4924,166 @@ class PayPalComponent {
4173
4924
  @osovitny/anatoly
4174
4925
 
4175
4926
  Authors:
4176
- Vadim Osovitny vadim@osovitny.com
4177
- Anatoly Osovitny anatoly@osovitny.com
4927
+ Vadim Osovitny vadim.osovitny@osovitny.com
4178
4928
 
4179
4929
  Created:
4180
- 28 Aug 2018
4930
+ 29 Apr 2018
4181
4931
 
4182
4932
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
4183
4933
  </file>
4184
4934
  */
4185
4935
  //Node
4186
- class ComponentBase {
4187
- constructor() {
4188
- this.isDevMode = false;
4189
- this.subs = new Subs();
4190
- //Component Data => usually loading from API
4191
- this.dataLoading = true;
4192
- this.dataLoaded = false;
4193
- this.dataFound = false;
4194
- this.title = '';
4195
- this.isTitleVisible = true;
4196
- this.isRequired = false;
4197
- this.isDevMode = IsDevMode;
4198
- this.applicationType = 1;
4199
- this.applicationRoot = '/';
4200
- if (AppSettings) {
4201
- this.applicationType = AppSettings.id;
4202
- if (AppSettings.root != '/') {
4203
- this.applicationRoot = AppSettings.root;
4936
+ class GridReadServiceBase extends BehaviorSubject {
4937
+ constructor(http) {
4938
+ super([]);
4939
+ this.http = http;
4940
+ this.data = [];
4941
+ }
4942
+ serializeParams(data) {
4943
+ return data ? ('?' + $.param(data)) : '';
4944
+ }
4945
+ read(params, success, error) {
4946
+ if (this.data.length) {
4947
+ return super.next(this.data);
4948
+ }
4949
+ var url = this.baseReadUrl;
4950
+ if (typeof params === 'undefined') {
4951
+ params = this.savedReadParams;
4952
+ }
4953
+ if (params) {
4954
+ url = this.baseReadUrl + `${this.serializeParams(params)}`;
4955
+ this.savedReadParams = params;
4956
+ }
4957
+ this.http.get(url).pipe(map(res => res)).subscribe({
4958
+ next: (data) => {
4959
+ super.next(data);
4960
+ if (success)
4961
+ success();
4962
+ },
4963
+ error: (e) => {
4964
+ if (error)
4965
+ error(e);
4204
4966
  }
4967
+ });
4968
+ }
4969
+ static { this.ɵfac = function GridReadServiceBase_Factory(t) { return new (t || GridReadServiceBase)(i0.ɵɵinject(i1$1.HttpClient)); }; }
4970
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GridReadServiceBase, factory: GridReadServiceBase.ɵfac }); }
4971
+ }
4972
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridReadServiceBase, [{
4973
+ type: Injectable
4974
+ }], () => [{ type: i1$1.HttpClient }], null); })();
4975
+
4976
+ /*
4977
+ <file>
4978
+ Project:
4979
+ @osovitny/anatoly
4980
+
4981
+ Authors:
4982
+ Vadim Osovitny vadim.osovitny@osovitny.com
4983
+
4984
+ Created:
4985
+ 29 Apr 2018
4986
+
4987
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
4988
+ </file>
4989
+ */
4990
+ //Node
4991
+ class GridEditServiceBase extends GridReadServiceBase {
4992
+ constructor(http) {
4993
+ super(http);
4994
+ this.http = http;
4995
+ }
4996
+ reset() {
4997
+ this.data = [];
4998
+ }
4999
+ resetItem(dataItem) {
5000
+ if (!dataItem) {
5001
+ return;
4205
5002
  }
5003
+ //find orignal data item
5004
+ const originalDataItem = this.data.find(item => item.Id === dataItem.Id);
5005
+ //revert changes
5006
+ Object.assign(originalDataItem, dataItem);
5007
+ super.next(this.data);
4206
5008
  }
4207
- ngOnInit() {
5009
+ save(data, isNew, sucess) {
5010
+ const action = isNew ? 'add' : 'update';
5011
+ this.reset();
5012
+ this.post(action, data).subscribe({
5013
+ next: (data) => {
5014
+ },
5015
+ error: (e) => {
5016
+ this.read();
5017
+ },
5018
+ complete: () => {
5019
+ this.read();
5020
+ if (sucess)
5021
+ sucess();
5022
+ }
5023
+ });
4208
5024
  }
4209
- ngOnDestroy() {
4210
- this.subs.unsubscribe();
5025
+ delete(data, sucess) {
5026
+ this.reset();
5027
+ const url = `${this.baseUrl}/delete${this.serializeParams(data)}`;
5028
+ return this.http.delete(url).subscribe({
5029
+ next: (data) => {
5030
+ this.read();
5031
+ if (sucess)
5032
+ sucess();
5033
+ },
5034
+ error: (e) => {
5035
+ this.read();
5036
+ }
5037
+ });
4211
5038
  }
4212
- getEntityId() {
4213
- return QSUtils.getValueByName("id");
5039
+ post(action, data) {
5040
+ const url = `${this.baseUrl}/${action}${this.serializeParams(data)}`;
5041
+ return this.http.post(url, data).pipe(map(res => res));
5042
+ }
5043
+ static { this.ɵfac = function GridEditServiceBase_Factory(t) { return new (t || GridEditServiceBase)(i0.ɵɵinject(i1$1.HttpClient)); }; }
5044
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: GridEditServiceBase, factory: GridEditServiceBase.ɵfac }); }
5045
+ }
5046
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(GridEditServiceBase, [{
5047
+ type: Injectable
5048
+ }], () => [{ type: i1$1.HttpClient }], null); })();
5049
+
5050
+ /*
5051
+ <file>
5052
+ Project:
5053
+ @osovitny/anatoly
5054
+
5055
+ Authors:
5056
+ Vadim Osovitny vadim.osovitny@osovitny.com
5057
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5058
+
5059
+ Created:
5060
+ 02 Aug 2022
5061
+
5062
+ Copyright (c) 2017-2022 Osovitny Inc. All rights reserved.
5063
+ </file>
5064
+ */
5065
+ //Node
5066
+ class CoreApiService extends ApiServiceBase {
5067
+ constructor(http) {
5068
+ super(http);
5069
+ this.http = http;
5070
+ this.baseUrl = `${ApiUrl}/core`;
4214
5071
  }
4215
- dataStartedLoading() {
4216
- this.dataLoading = true;
4217
- this.dataLoaded = false;
4218
- this.dataFound = false;
5072
+ getTimezonesJsonFile() {
5073
+ return this.getExternalJsonFile('anatoly', 'timezones.json');
4219
5074
  }
4220
- dataLoadedAndNothingFound() {
4221
- this.dataLoadedAndFound(false);
5075
+ getCountriesJsonFile() {
5076
+ return this.getExternalJsonFile('anatoly', 'countries.json');
4222
5077
  }
4223
- dataLoadedAndFound(found = true) {
4224
- this.dataLoading = false;
4225
- this.dataLoaded = true;
4226
- this.dataFound = found;
5078
+ getUSStatesJsonFile() {
5079
+ return this.getExternalJsonFile('anatoly', 'usStates.json');
4227
5080
  }
4228
- static { this.ɵfac = function ComponentBase_Factory(t) { return new (t || ComponentBase)(); }; }
4229
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ComponentBase, selectors: [["ng-component"]], inputs: { classes: "classes", title: "title", isTitleVisible: "isTitleVisible", isRequired: "isRequired" }, decls: 0, vars: 0, template: function ComponentBase_Template(rf, ctx) { }, encapsulation: 2 }); }
5081
+ static { this.ɵfac = function CoreApiService_Factory(t) { return new (t || CoreApiService)(i0.ɵɵinject(i1$1.HttpClient)); }; }
5082
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CoreApiService, factory: CoreApiService.ɵfac }); }
4230
5083
  }
4231
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ComponentBase, [{
4232
- type: Component,
4233
- args: [{
4234
- template: ''
4235
- }]
4236
- }], () => [], { classes: [{
4237
- type: Input
4238
- }], title: [{
4239
- type: Input
4240
- }], isTitleVisible: [{
4241
- type: Input
4242
- }], isRequired: [{
4243
- type: Input
4244
- }] }); })();
4245
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ComponentBase, { className: "ComponentBase", filePath: "lib\\ui\\components\\base\\components\\component.ts", lineNumber: 26 }); })();
5084
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CoreApiService, [{
5085
+ type: Injectable
5086
+ }], () => [{ type: i1$1.HttpClient }], null); })();
4246
5087
 
4247
5088
  /*
4248
5089
  <file>
@@ -4250,136 +5091,56 @@ class ComponentBase {
4250
5091
  @osovitny/anatoly
4251
5092
 
4252
5093
  Authors:
4253
- Vadim Osovitny vadim@osovitny.com
4254
- Anatoly Osovitny anatoly@osovitny.com
5094
+ Vadim Osovitny vadim.osovitny@osovitny.com
5095
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4255
5096
 
4256
5097
  Created:
4257
- 20 Nov 2017
5098
+ 16 Jun 2022
4258
5099
 
4259
5100
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
4260
5101
  </file>
4261
5102
  */
4262
5103
  //Node
4263
- class EditComponentBase extends ComponentBase {
4264
- constructor() {
4265
- super();
4266
- //Modes
4267
- this.isAddMode = false;
4268
- this.isEditMode = false;
4269
- this.formSubmitted = false;
4270
- this.controlName = null;
4271
- this.isEditMode = QSUtils.idExists();
4272
- this.isAddMode = !this.isEditMode;
4273
- }
4274
- isControlValid(name, frmGroup = null) {
4275
- return !this.isControlInvalid(name, frmGroup);
4276
- }
4277
- isControlInvalid(name, frmGroup = null) {
4278
- if (typeof name === "undefined" || name == "") {
4279
- return false;
4280
- }
4281
- let fg = frmGroup ? frmGroup : this.formGroup;
4282
- if (!fg) {
4283
- return false;
4284
- }
4285
- let control = fg.get(name);
4286
- if (control) {
4287
- return ((this.formSubmitted && control.invalid) || (control.touched && control.invalid));
4288
- }
4289
- return false;
4290
- }
4291
- //FormGroup functions
4292
- getFormValue(name, frmGroup = null) {
4293
- let fg = frmGroup ? frmGroup : this.formGroup;
4294
- return fg.controls[name].value;
4295
- }
4296
- setFormValue(name, value, frmGroup = null) {
4297
- let fg = frmGroup ? frmGroup : this.formGroup;
4298
- fg.controls[name].setValue(value);
4299
- }
4300
- getFormGroupValue(groupName, name, frmGroup = null) {
4301
- let fg = frmGroup ? frmGroup : this.formGroup;
4302
- return fg.controls[groupName].get(name).value;
4303
- }
4304
- setFormGroupValue(groupName, name, value, frmGroup = null) {
4305
- let fg = frmGroup ? frmGroup : this.formGroup;
4306
- fg.controls[groupName].get(name).setValue(value);
4307
- }
4308
- /**
4309
- * Add control to form group
4310
- * @param name
4311
- * @param formControl
4312
- * @param frmGroup
4313
- */
4314
- addControl(name, formControl, frmGroup = null) {
4315
- let fg = frmGroup ? frmGroup : this.formGroup;
4316
- fg.addControl(name, formControl);
4317
- }
4318
- /**
4319
- * Removes control from form group
4320
- * @param name
4321
- * @param frmGroup
4322
- */
4323
- removeControl(name, frmGroup = null) {
4324
- let fg = frmGroup ? frmGroup : this.formGroup;
4325
- if (fg.get(name)) {
4326
- fg.removeControl(name);
4327
- }
4328
- }
4329
- /**
4330
- * return new form control
4331
- * @param formState
4332
- * @param validatorOrOpts
4333
- * @param asyncValidator
4334
- */
4335
- createFormControl(formState, validatorOrOpts, asyncValidator) {
4336
- return new FormControl(formState, validatorOrOpts, asyncValidator);
4337
- }
4338
- /**
4339
- * Set error to control
4340
- * @param controlName formControl name
4341
- * @param err error expect {erroname: boolean} format
4342
- * @param frmGroup
4343
- */
4344
- setControlError(controlName, err, frmGroup = null) {
4345
- let fg = frmGroup ? frmGroup : this.formGroup;
4346
- fg.get(controlName)?.setErrors(err);
4347
- }
4348
- /**
4349
- * Set {invalid: true} for the specified form
4350
- * @param controlName form control name
4351
- * @param frmGroup
4352
- */
4353
- setInValidError(controlName, frmGroup = null) {
4354
- let fg = frmGroup ? frmGroup : this.formGroup;
4355
- fg.get(controlName)?.setErrors({ invalid: true });
4356
- }
4357
- /**
4358
- * returns formgroup controls.
4359
- * main use case is used in html pages
4360
- */
4361
- get fc() {
4362
- return this.formGroup.controls;
5104
+ class EmailsApiService extends ApiServiceBase {
5105
+ constructor(http) {
5106
+ super(http);
5107
+ this.http = http;
5108
+ this.baseUrl = `${ApiUrl}/emails`;
4363
5109
  }
4364
- get isNgModelBased() {
4365
- return this.controlName == null;
5110
+ sendContactUs(captcha, name, email, topic, subject, message, success, error) {
5111
+ return this.post('sendContactUs', { captcha, name, email, topic, subject, message }).subscribe({
5112
+ next: (data) => {
5113
+ if (success)
5114
+ success(data);
5115
+ },
5116
+ error: (e) => {
5117
+ if (error)
5118
+ error(e);
5119
+ }
5120
+ });
4366
5121
  }
4367
- static { this.ɵfac = function EditComponentBase_Factory(t) { return new (t || EditComponentBase)(); }; }
4368
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: EditComponentBase, selectors: [["ng-component"]], inputs: { formGroup: "formGroup", formSubmitted: "formSubmitted", controlName: "controlName" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function EditComponentBase_Template(rf, ctx) { }, encapsulation: 2 }); }
5122
+ static { this.ɵfac = function EmailsApiService_Factory(t) { return new (t || EmailsApiService)(i0.ɵɵinject(i1$1.HttpClient)); }; }
5123
+ static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: EmailsApiService, factory: EmailsApiService.ɵfac }); }
4369
5124
  }
4370
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EditComponentBase, [{
4371
- type: Component,
4372
- args: [{
4373
- template: ''
4374
- }]
4375
- }], () => [], { formGroup: [{
4376
- type: Input
4377
- }], formSubmitted: [{
4378
- type: Input
4379
- }], controlName: [{
4380
- type: Input
4381
- }] }); })();
4382
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(EditComponentBase, { className: "EditComponentBase", filePath: "lib\\ui\\components\\base\\components\\edit.component.ts", lineNumber: 28 }); })();
5125
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(EmailsApiService, [{
5126
+ type: Injectable
5127
+ }], () => [{ type: i1$1.HttpClient }], null); })();
5128
+
5129
+ /*
5130
+ <file>
5131
+ Project:
5132
+ @osovitny/anatoly
5133
+
5134
+ Authors:
5135
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5136
+
5137
+ Created:
5138
+ 2 Aug 2022
5139
+
5140
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
5141
+ </file>
5142
+ */
5143
+ //base
4383
5144
 
4384
5145
  /*
4385
5146
  <file>
@@ -4387,8 +5148,8 @@ class EditComponentBase extends ComponentBase {
4387
5148
  @osovitny/anatoly
4388
5149
 
4389
5150
  Authors:
4390
- Vadim Osovitny vadim@osovitny.com
4391
- Anatoly Osovitny anatoly@osovitny.com
5151
+ Vadim Osovitny vadim.osovitny@osovitny.com
5152
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4392
5153
 
4393
5154
  Created:
4394
5155
  20 Jan 2024
@@ -4468,8 +5229,8 @@ class EnumEditComponentBase extends EditComponentBase {
4468
5229
  @osovitny/anatoly
4469
5230
 
4470
5231
  Authors:
4471
- Vadim Osovitny vadim@osovitny.com
4472
- Anatoly Osovitny anatoly@osovitny.com
5232
+ Vadim Osovitny vadim.osovitny@osovitny.com
5233
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4473
5234
 
4474
5235
  Created:
4475
5236
  20 Aug 2022
@@ -4496,8 +5257,8 @@ class PageBase extends ComponentBase {
4496
5257
  @osovitny/anatoly
4497
5258
 
4498
5259
  Authors:
4499
- Vadim Osovitny vadim@osovitny.com
4500
- Anatoly Osovitny anatoly@osovitny.com
5260
+ Vadim Osovitny vadim.osovitny@osovitny.com
5261
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4501
5262
 
4502
5263
  Created:
4503
5264
  20 Aug 2022
@@ -4524,8 +5285,8 @@ class EditPageBase extends EditComponentBase {
4524
5285
  @osovitny/anatoly
4525
5286
 
4526
5287
  Authors:
4527
- Vadim Osovitny vadim@osovitny.com
4528
- Anatoly Osovitny anatoly@osovitny.com
5288
+ Vadim Osovitny vadim.osovitny@osovitny.com
5289
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4529
5290
 
4530
5291
  Created:
4531
5292
  20 Aug 2022
@@ -4560,91 +5321,27 @@ class PagedPageBase extends PageBase {
4560
5321
  this.currentFilter = filter;
4561
5322
  this.loadPageOne();
4562
5323
  }
4563
- //Tos
4564
- toIndex(index) {
4565
- return ((this.currentPage - 1) * this.pageSize) + index + 1;
4566
- }
4567
- //Events
4568
- onPageChange(e) {
4569
- this.pageSize = e.take;
4570
- this.skipItems = e.skip;
4571
- this.currentPage = (this.skipItems / this.pageSize) + 1;
4572
- this.loadPage();
4573
- }
4574
- static { this.ɵfac = /*@__PURE__*/ (() => { let ɵPagedPageBase_BaseFactory; return function PagedPageBase_Factory(t) { return (ɵPagedPageBase_BaseFactory || (ɵPagedPageBase_BaseFactory = i0.ɵɵgetInheritedFactory(PagedPageBase)))(t || PagedPageBase); }; })(); }
4575
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PagedPageBase, selectors: [["ng-component"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PagedPageBase_Template(rf, ctx) { }, encapsulation: 2 }); }
4576
- }
4577
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagedPageBase, [{
4578
- type: Component,
4579
- args: [{
4580
- template: ''
4581
- }]
4582
- }], null, null); })();
4583
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PagedPageBase, { className: "PagedPageBase", filePath: "lib\\ui\\components\\base\\pages\\paged.page.ts", lineNumber: 26 }); })();
4584
-
4585
- /*
4586
- <file>
4587
- Project:
4588
- @osovitny/anatoly
4589
-
4590
- Authors:
4591
- Vadim Osovitny vadim@osovitny.com
4592
- Anatoly Osovitny anatoly@osovitny.com
4593
-
4594
- Created:
4595
- 24 Jan 2022
4596
-
4597
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
4598
- </file>
4599
- */
4600
- //Node
4601
- class DialogBase extends EditComponentBase {
4602
- get isOpen() {
4603
- return this._isOpen;
4604
- }
4605
- set isOpen(value) {
4606
- if (value) {
4607
- if (this.osOnBeforeOpen) {
4608
- this.osOnBeforeOpen();
4609
- }
4610
- this.opened.emit();
4611
- }
4612
- this._isOpen = value;
4613
- }
4614
- constructor() {
4615
- super();
4616
- this._isOpen = false;
4617
- //Events
4618
- this.opened = new EventEmitter();
4619
- this.closed = new EventEmitter();
4620
- }
4621
- open() {
4622
- this.isOpen = true;
4623
- }
4624
- close(returnValue = "OK") {
4625
- this.isOpen = false;
4626
- this.closed.emit(returnValue);
5324
+ //Tos
5325
+ toIndex(index) {
5326
+ return ((this.currentPage - 1) * this.pageSize) + index + 1;
4627
5327
  }
4628
- cancel() {
4629
- this.isOpen = false;
4630
- this.closed.emit(-1);
5328
+ //Events
5329
+ onPageChange(e) {
5330
+ this.pageSize = e.take;
5331
+ this.skipItems = e.skip;
5332
+ this.currentPage = (this.skipItems / this.pageSize) + 1;
5333
+ this.loadPage();
4631
5334
  }
4632
- static { this.ɵfac = function DialogBase_Factory(t) { return new (t || DialogBase)(); }; }
4633
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: DialogBase, selectors: [["ng-component"]], inputs: { isOpen: "isOpen" }, outputs: { opened: "opened", closed: "closed" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function DialogBase_Template(rf, ctx) { }, encapsulation: 2 }); }
5335
+ static { this.ɵfac = /*@__PURE__*/ (() => { let ɵPagedPageBase_BaseFactory; return function PagedPageBase_Factory(t) { return (ɵPagedPageBase_BaseFactory || (ɵPagedPageBase_BaseFactory = i0.ɵɵgetInheritedFactory(PagedPageBase)))(t || PagedPageBase); }; })(); }
5336
+ static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PagedPageBase, selectors: [["ng-component"]], features: [i0.ɵɵInheritDefinitionFeature], decls: 0, vars: 0, template: function PagedPageBase_Template(rf, ctx) { }, encapsulation: 2 }); }
4634
5337
  }
4635
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DialogBase, [{
5338
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagedPageBase, [{
4636
5339
  type: Component,
4637
5340
  args: [{
4638
5341
  template: ''
4639
5342
  }]
4640
- }], () => [], { isOpen: [{
4641
- type: Input
4642
- }], opened: [{
4643
- type: Output
4644
- }], closed: [{
4645
- type: Output
4646
- }] }); })();
4647
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DialogBase, { className: "DialogBase", filePath: "lib\\ui\\components\\base\\dialog.ts", lineNumber: 26 }); })();
5343
+ }], null, null); })();
5344
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PagedPageBase, { className: "PagedPageBase", filePath: "lib\\ui\\components\\base\\pages\\paged.page.ts", lineNumber: 26 }); })();
4648
5345
 
4649
5346
  /*
4650
5347
  <file>
@@ -4652,8 +5349,8 @@ class DialogBase extends EditComponentBase {
4652
5349
  @osovitny/anatoly
4653
5350
 
4654
5351
  Authors:
4655
- Vadim Osovitny vadim@osovitny.com
4656
- Anatoly Osovitny anatoly@osovitny.com
5352
+ Vadim Osovitny vadim.osovitny@osovitny.com
5353
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4657
5354
 
4658
5355
  Created:
4659
5356
  20 Aug 2022
@@ -4748,8 +5445,8 @@ class ListBase extends ComponentBase {
4748
5445
  @osovitny/anatoly
4749
5446
 
4750
5447
  Authors:
4751
- Vadim Osovitny vadim@osovitny.com
4752
- Anatoly Osovitny anatoly@osovitny.com
5448
+ Vadim Osovitny vadim.osovitny@osovitny.com
5449
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4753
5450
 
4754
5451
  Created:
4755
5452
  4 Jul 2018
@@ -4845,8 +5542,8 @@ class SignUpButtonComponent extends ComponentBase {
4845
5542
  @osovitny/anatoly
4846
5543
 
4847
5544
  Authors:
4848
- Vadim Osovitny vadim@osovitny.com
4849
- Anatoly Osovitny anatoly@osovitny.com
5545
+ Vadim Osovitny vadim.osovitny@osovitny.com
5546
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4850
5547
 
4851
5548
  Created:
4852
5549
  14 Aug 2018
@@ -4948,8 +5645,8 @@ class BuyAccessButtonComponent {
4948
5645
  @osovitny/anatoly
4949
5646
 
4950
5647
  Authors:
4951
- Vadim Osovitny vadim@osovitny.com
4952
- Anatoly Osovitny anatoly@osovitny.com
5648
+ Vadim Osovitny vadim.osovitny@osovitny.com
5649
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4953
5650
 
4954
5651
  Created:
4955
5652
  1 Jun 2018
@@ -5062,8 +5759,8 @@ class SubscribePlanButtonComponent {
5062
5759
  @osovitny/anatoly
5063
5760
 
5064
5761
  Authors:
5065
- Vadim Osovitny vadim@osovitny.com
5066
- Anatoly Osovitny anatoly@osovitny.com
5762
+ Vadim Osovitny vadim.osovitny@osovitny.com
5763
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5067
5764
 
5068
5765
  Created:
5069
5766
  15 Aug 2022
@@ -5101,8 +5798,8 @@ class CheckIconComponent {
5101
5798
  @osovitny/anatoly
5102
5799
 
5103
5800
  Authors:
5104
- Vadim Osovitny vadim@osovitny.com
5105
- Anatoly Osovitny anatoly@osovitny.com
5801
+ Vadim Osovitny vadim.osovitny@osovitny.com
5802
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5106
5803
 
5107
5804
  Created:
5108
5805
  28 Aug 2022
@@ -5191,8 +5888,8 @@ class DataPagerComponent extends ComponentBase {
5191
5888
  @osovitny/anatoly
5192
5889
 
5193
5890
  Authors:
5194
- Vadim Osovitny vadim@osovitny.com
5195
- Anatoly Osovitny anatoly@osovitny.com
5891
+ Vadim Osovitny vadim.osovitny@osovitny.com
5892
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5196
5893
 
5197
5894
  Created:
5198
5895
  4 Jul 2018
@@ -5288,8 +5985,8 @@ class SignInButtonComponent extends ComponentBase {
5288
5985
  @osovitny/anatoly
5289
5986
 
5290
5987
  Authors:
5291
- Vadim Osovitny vadim@osovitny.com
5292
- Anatoly Osovitny anatoly@osovitny.com
5988
+ Vadim Osovitny vadim.osovitny@osovitny.com
5989
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5293
5990
 
5294
5991
  Created:
5295
5992
  4 Jul 2018
@@ -5385,8 +6082,8 @@ class SignOutButtonComponent extends ComponentBase {
5385
6082
  @osovitny/anatoly
5386
6083
 
5387
6084
  Authors:
5388
- Vadim Osovitny vadim@osovitny.com
5389
- Anatoly Osovitny anatoly@osovitny.com
6085
+ Vadim Osovitny vadim.osovitny@osovitny.com
6086
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5390
6087
 
5391
6088
  Created:
5392
6089
  29 Jul 2022
@@ -5460,8 +6157,8 @@ class NodataComponent {
5460
6157
  @osovitny/anatoly
5461
6158
 
5462
6159
  Authors:
5463
- Vadim Osovitny vadim@osovitny.com
5464
- Anatoly Osovitny anatoly@osovitny.com
6160
+ Vadim Osovitny vadim.osovitny@osovitny.com
6161
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5465
6162
 
5466
6163
  Created:
5467
6164
  9 May 2020
@@ -5519,8 +6216,8 @@ const Spinkit = {
5519
6216
  @osovitny/anatoly
5520
6217
 
5521
6218
  Authors:
5522
- Vadim Osovitny vadim@osovitny.com
5523
- Anatoly Osovitny anatoly@osovitny.com
6219
+ Vadim Osovitny vadim.osovitny@osovitny.com
6220
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5524
6221
 
5525
6222
  Created:
5526
6223
  16 May 2020
@@ -5597,8 +6294,8 @@ class PageSpinnerComponent {
5597
6294
  @osovitny/anatoly
5598
6295
 
5599
6296
  Authors:
5600
- Vadim Osovitny vadim@osovitny.com
5601
- Anatoly Osovitny anatoly@osovitny.com
6297
+ Vadim Osovitny vadim.osovitny@osovitny.com
6298
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5602
6299
 
5603
6300
  Created:
5604
6301
  9 Jun 2020
@@ -5644,8 +6341,8 @@ class Copy2ClipboardComponent {
5644
6341
  @osovitny/anatoly
5645
6342
 
5646
6343
  Authors:
5647
- Vadim Osovitny vadim@osovitny.com
5648
- Anatoly Osovitny anatoly@osovitny.com
6344
+ Vadim Osovitny vadim.osovitny@osovitny.com
6345
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5649
6346
 
5650
6347
  Created:
5651
6348
  28 Jun 2020
@@ -5663,7 +6360,7 @@ class NativeElementDirective {
5663
6360
  // sets the localization key to the control
5664
6361
  this.control.control.nativeElement = this.el.nativeElement;
5665
6362
  }
5666
- static { this.ɵfac = function NativeElementDirective_Factory(t) { return new (t || NativeElementDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2.NgControl)); }; }
6363
+ static { this.ɵfac = function NativeElementDirective_Factory(t) { return new (t || NativeElementDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i2$1.NgControl)); }; }
5667
6364
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: NativeElementDirective, selectors: [["", "formControl", ""], ["", "formControlName", ""]] }); }
5668
6365
  }
5669
6366
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeElementDirective, [{
@@ -5671,7 +6368,7 @@ class NativeElementDirective {
5671
6368
  args: [{
5672
6369
  selector: '[formControl], [formControlName]'
5673
6370
  }]
5674
- }], () => [{ type: i0.ElementRef }, { type: i2.NgControl }], null); })();
6371
+ }], () => [{ type: i0.ElementRef }, { type: i2$1.NgControl }], null); })();
5675
6372
 
5676
6373
  /*
5677
6374
  <file>
@@ -5679,8 +6376,8 @@ class NativeElementDirective {
5679
6376
  @osovitny/anatoly
5680
6377
 
5681
6378
  Authors:
5682
- Vadim Osovitny vadim@osovitny.com
5683
- Anatoly Osovitny anatoly@osovitny.com
6379
+ Vadim Osovitny vadim.osovitny@osovitny.com
6380
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5684
6381
 
5685
6382
  Created:
5686
6383
  8 Dec 2017
@@ -5799,8 +6496,8 @@ class ValidationSummaryComponent extends EditComponentBase {
5799
6496
  @osovitny/anatoly
5800
6497
 
5801
6498
  Authors:
5802
- Vadim Osovitny vadim@osovitny.com
5803
- Anatoly Osovitny anatoly@osovitny.com
6499
+ Vadim Osovitny vadim.osovitny@osovitny.com
6500
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5804
6501
 
5805
6502
  Created:
5806
6503
  6 Dec 2017
@@ -5847,8 +6544,8 @@ class ItemValidationSummaryComponent extends ValidationSummaryComponent {
5847
6544
  @osovitny/anatoly
5848
6545
 
5849
6546
  Authors:
5850
- Vadim Osovitny vadim@osovitny.com
5851
- Anatoly Osovitny anatoly@osovitny.com
6547
+ Vadim Osovitny vadim.osovitny@osovitny.com
6548
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5852
6549
 
5853
6550
  Created:
5854
6551
  02 Aug 2022
@@ -5944,7 +6641,7 @@ class UrlSlugComponent extends EditComponentBase {
5944
6641
  i0.ɵɵproperty("formControlName", ctx.controlName);
5945
6642
  i0.ɵɵadvance();
5946
6643
  i0.ɵɵproperty("ngIf", ctx.isGoButtonVisible);
5947
- } }, dependencies: [i1$2.NgClass, i1$2.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
6644
+ } }, dependencies: [i1$2.NgClass, i1$2.NgIf, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
5948
6645
  }
5949
6646
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlSlugComponent, [{
5950
6647
  type: Component,
@@ -5966,8 +6663,8 @@ class UrlSlugComponent extends EditComponentBase {
5966
6663
  @osovitny/anatoly
5967
6664
 
5968
6665
  Authors:
5969
- Vadim Osovitny vadim@osovitny.com
5970
- Anatoly Osovitny anatoly@osovitny.com
6666
+ Vadim Osovitny vadim.osovitny@osovitny.com
6667
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5971
6668
 
5972
6669
  Created:
5973
6670
  2 Feb 2024
@@ -6038,7 +6735,7 @@ class CountryDropdownlist extends EditComponentBase {
6038
6735
  i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6039
6736
  i0.ɵɵadvance();
6040
6737
  i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6041
- } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective], encapsulation: 2 }); }
6738
+ } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2$1.NgSelectOption, i2$1.ɵNgSelectMultipleOption, i2$1.SelectControlValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, NativeElementDirective], encapsulation: 2 }); }
6042
6739
  }
6043
6740
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CountryDropdownlist, [{
6044
6741
  type: Component,
@@ -6052,8 +6749,8 @@ class CountryDropdownlist extends EditComponentBase {
6052
6749
  @osovitny/anatoly
6053
6750
 
6054
6751
  Authors:
6055
- Vadim Osovitny vadim@osovitny.com
6056
- Anatoly Osovitny anatoly@osovitny.com
6752
+ Vadim Osovitny vadim.osovitny@osovitny.com
6753
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6057
6754
 
6058
6755
  Created:
6059
6756
  02 Aug 2022
@@ -6141,7 +6838,7 @@ class TimezoneDropdownlist extends EditComponentBase {
6141
6838
  i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6142
6839
  i0.ɵɵadvance();
6143
6840
  i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6144
- } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective], encapsulation: 2 }); }
6841
+ } }, dependencies: [i1$2.NgForOf, i1$2.NgIf, i2$1.NgSelectOption, i2$1.ɵNgSelectMultipleOption, i2$1.SelectControlValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, NativeElementDirective], encapsulation: 2 }); }
6145
6842
  }
6146
6843
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimezoneDropdownlist, [{
6147
6844
  type: Component,
@@ -6155,8 +6852,7 @@ class TimezoneDropdownlist extends EditComponentBase {
6155
6852
  @osovitny/anatoly
6156
6853
 
6157
6854
  Authors:
6158
- Vadim Osovitny vadim@osovitny.com
6159
- Anatoly Osovitny anatoly@osovitny.com
6855
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6160
6856
 
6161
6857
  Created:
6162
6858
  29 July 2022
@@ -6185,7 +6881,7 @@ class CardComponent extends ComponentBase {
6185
6881
  type: Component,
6186
6882
  args: [{ selector: 'anatoly-card', template: "<div class='card {{ classes }}'>\r\n <ng-content select='mex-card-header'></ng-content>\r\n <ng-content select='mex-card-body'></ng-content>\r\n <ng-content></ng-content>\r\n <ng-content select='mex-card-footer'></ng-content>\r\n</div>\r\n" }]
6187
6883
  }], null, null); })();
6188
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardComponent, { className: "CardComponent", filePath: "lib\\ui\\components\\card\\card.component.ts", lineNumber: 27 }); })();
6884
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardComponent, { className: "CardComponent", filePath: "lib\\ui\\components\\card\\card.component.ts", lineNumber: 26 }); })();
6189
6885
 
6190
6886
  /*
6191
6887
  <file>
@@ -6193,8 +6889,7 @@ class CardComponent extends ComponentBase {
6193
6889
  @osovitny/anatoly
6194
6890
 
6195
6891
  Authors:
6196
- Vadim Osovitny vadim@osovitny.com
6197
- Anatoly Osovitny anatoly@osovitny.com
6892
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6198
6893
 
6199
6894
  Created:
6200
6895
  29 July 2022
@@ -6231,7 +6926,7 @@ class CardHeaderComponent extends ComponentBase {
6231
6926
  type: Component,
6232
6927
  args: [{ selector: 'anatoly-card-header', template: "<div class='card-header {{ classes }}'>\r\n <h3 *ngIf='title' class='card-title'>{{ title }}</h3>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6233
6928
  }], null, null); })();
6234
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardHeaderComponent, { className: "CardHeaderComponent", filePath: "lib\\ui\\components\\card\\card-header.component.ts", lineNumber: 27 }); })();
6929
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardHeaderComponent, { className: "CardHeaderComponent", filePath: "lib\\ui\\components\\card\\card-header.component.ts", lineNumber: 26 }); })();
6235
6930
 
6236
6931
  /*
6237
6932
  <file>
@@ -6239,8 +6934,7 @@ class CardHeaderComponent extends ComponentBase {
6239
6934
  @osovitny/anatoly
6240
6935
 
6241
6936
  Authors:
6242
- Vadim Osovitny vadim@osovitny.com
6243
- Anatoly Osovitny anatoly@osovitny.com
6937
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6244
6938
 
6245
6939
  Created:
6246
6940
  29 July 2022
@@ -6265,7 +6959,7 @@ class CardBodyComponent extends ComponentBase {
6265
6959
  type: Component,
6266
6960
  args: [{ selector: 'anatoly-card-body', template: "<div class='card-body {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6267
6961
  }], null, null); })();
6268
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardBodyComponent, { className: "CardBodyComponent", filePath: "lib\\ui\\components\\card\\card-body.component.ts", lineNumber: 27 }); })();
6962
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardBodyComponent, { className: "CardBodyComponent", filePath: "lib\\ui\\components\\card\\card-body.component.ts", lineNumber: 26 }); })();
6269
6963
 
6270
6964
  /*
6271
6965
  <file>
@@ -6273,8 +6967,7 @@ class CardBodyComponent extends ComponentBase {
6273
6967
  @osovitny/anatoly
6274
6968
 
6275
6969
  Authors:
6276
- Vadim Osovitny vadim@osovitny.com
6277
- Anatoly Osovitny anatoly@osovitny.com
6970
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6278
6971
 
6279
6972
  Created:
6280
6973
  29 July 2022
@@ -6299,7 +6992,7 @@ class CardFooterComponent extends ComponentBase {
6299
6992
  type: Component,
6300
6993
  args: [{ selector: 'anatoly-card-footer', template: "<div class='card-footer {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6301
6994
  }], null, null); })();
6302
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardFooterComponent, { className: "CardFooterComponent", filePath: "lib\\ui\\components\\card\\card-footer.component.ts", lineNumber: 27 }); })();
6995
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CardFooterComponent, { className: "CardFooterComponent", filePath: "lib\\ui\\components\\card\\card-footer.component.ts", lineNumber: 26 }); })();
6303
6996
 
6304
6997
  /*
6305
6998
  <file>
@@ -6307,8 +7000,8 @@ class CardFooterComponent extends ComponentBase {
6307
7000
  @osovitny/anatoly
6308
7001
 
6309
7002
  Authors:
6310
- Vadim Osovitny vadim@osovitny.com
6311
- Anatoly Osovitny anatoly@osovitny.com
7003
+ Vadim Osovitny vadim.osovitny@osovitny.com
7004
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6312
7005
 
6313
7006
  Created:
6314
7007
  12 Dec 2017
@@ -6481,8 +7174,8 @@ class HtmlEditorComponentBase extends EditComponentBase {
6481
7174
  @osovitny/anatoly
6482
7175
 
6483
7176
  Authors:
6484
- Vadim Osovitny vadim@osovitny.com
6485
- Anatoly Osovitny anatoly@osovitny.com
7177
+ Vadim Osovitny vadim.osovitny@osovitny.com
7178
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6486
7179
 
6487
7180
  Created:
6488
7181
  12 Dec 2017
@@ -6520,7 +7213,7 @@ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
6520
7213
  i0.ɵɵproperty("formControlName", ctx.editorFormKey)("froalaEditor", ctx.options);
6521
7214
  i0.ɵɵadvance();
6522
7215
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.editorFormKey);
6523
- } }, dependencies: [i1$2.NgClass, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, i3.FroalaEditorDirective, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
7216
+ } }, dependencies: [i1$2.NgClass, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, i3.FroalaEditorDirective, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
6524
7217
  }
6525
7218
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsHtmlEditorComponent, [{
6526
7219
  type: Component,
@@ -6536,8 +7229,8 @@ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
6536
7229
  @osovitny/anatoly
6537
7230
 
6538
7231
  Authors:
6539
- Vadim Osovitny vadim@osovitny.com
6540
- Anatoly Osovitny anatoly@osovitny.com
7232
+ Vadim Osovitny vadim.osovitny@osovitny.com
7233
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6541
7234
 
6542
7235
  Created:
6543
7236
  12 Dec 2017
@@ -6593,8 +7286,8 @@ class HtmlEditorComponent extends HtmlEditorComponentBase {
6593
7286
  @osovitny/anatoly
6594
7287
 
6595
7288
  Authors:
6596
- Vadim Osovitny vadim@osovitny.com
6597
- Anatoly Osovitny anatoly@osovitny.com
7289
+ Vadim Osovitny vadim.osovitny@osovitny.com
7290
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6598
7291
 
6599
7292
  Created:
6600
7293
  2 Aug 2022
@@ -6610,8 +7303,8 @@ class HtmlEditorComponent extends HtmlEditorComponentBase {
6610
7303
  @osovitny/anatoly
6611
7304
 
6612
7305
  Authors:
6613
- Vadim Osovitny vadim@osovitny.com
6614
- Anatoly Osovitny anatoly@osovitny.com
7306
+ Vadim Osovitny vadim.osovitny@osovitny.com
7307
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6615
7308
 
6616
7309
  Created:
6617
7310
  7 Dec 2017
@@ -6695,8 +7388,8 @@ class FormValidationSummaryComponent extends ValidationSummaryComponent {
6695
7388
  @osovitny/anatoly
6696
7389
 
6697
7390
  Authors:
6698
- Vadim Osovitny vadim@osovitny.com
6699
- Anatoly Osovitny anatoly@osovitny.com
7391
+ Vadim Osovitny vadim.osovitny@osovitny.com
7392
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6700
7393
 
6701
7394
  Created:
6702
7395
  02 Aug 2022
@@ -6805,7 +7498,7 @@ class ContactUsForm extends EditComponentBase {
6805
7498
  onTopicChange(event) {
6806
7499
  this.selectedTopic = event.target.value;
6807
7500
  }
6808
- static { this.ɵfac = function ContactUsForm_Factory(t) { return new (t || ContactUsForm)(i0.ɵɵdirectiveInject(i1$8.ReCaptchaV3Service), i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(AppContextService), i0.ɵɵdirectiveInject(EmailsApiService), i0.ɵɵdirectiveInject(NotificationService)); }; }
7501
+ static { this.ɵfac = function ContactUsForm_Factory(t) { return new (t || ContactUsForm)(i0.ɵɵdirectiveInject(i1$8.ReCaptchaV3Service), i0.ɵɵdirectiveInject(i2$1.FormBuilder), i0.ɵɵdirectiveInject(AppContextService), i0.ɵɵdirectiveInject(EmailsApiService), i0.ɵɵdirectiveInject(NotificationService)); }; }
6809
7502
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: ContactUsForm, selectors: [["anatoly-forms-contactus-form"]], inputs: { showActionButtons: "showActionButtons" }, outputs: { submit: "submit" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 39, vars: 31, consts: [["novalidate", "", 3, "formGroup", "ngSubmit"], [3, "formGroup", "visible"], [1, "contact-us"], [1, "row"], [1, "form-fields", "col-6"], [1, "form-topic", 3, "ngClass"], [1, "form-select-wrapper"], [1, "assistive-text"], ["formControlName", "topic", 1, "form-select", 3, "change"], [3, "value", 4, "ngFor", "ngForOf"], ["controlName", "topic", "controlTitle", "topic", 3, "formGroup", "formSubmitted"], [1, "form-name", 3, "ngClass"], ["formControlName", "name", "placeholder", "Name *", "type", "text", 1, "form-control"], ["controlName", "name", "controlTitle", "name", 3, "formGroup", "formSubmitted"], [1, "form-email", 3, "ngClass"], ["formControlName", "email", "placeholder", "E-mail *", "type", "text", 1, "form-control"], [4, "ngIf"], ["controlName", "email", "controlTitle", "email", 3, "formGroup", "formSubmitted"], [1, "form-subject", 3, "ngClass"], ["formControlName", "subject", "placeholder", "Subject *", "type", "text", 1, "form-control"], ["controlName", "subject", "controlTitle", "subject", 3, "formGroup", "formSubmitted"], [1, "col-6"], [1, "form-message", 3, "ngClass"], ["formControlName", "message", "name", "message", "placeholder", "Message *", "rows", "4", "type", "text"], ["controlName", "message", "controlTitle", "message", 3, "formGroup", "formSubmitted"], [1, "row", "form-footer"], [1, "col"], ["class", "btn btn-success", "type", "submit", 3, "btn-primary", 4, "ngIf"], [3, "value"], ["type", "submit", 1, "btn", "btn-success"]], template: function ContactUsForm_Template(rf, ctx) { if (rf & 1) {
6810
7503
  i0.ɵɵelementStart(0, "form", 0);
6811
7504
  i0.ɵɵlistener("ngSubmit", function ContactUsForm_Template_form_ngSubmit_0_listener() { return ctx.onSubmit(); });
@@ -6877,12 +7570,12 @@ class ContactUsForm extends EditComponentBase {
6877
7570
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
6878
7571
  i0.ɵɵadvance(3);
6879
7572
  i0.ɵɵproperty("ngIf", ctx.showActionButtons);
6880
- } }, dependencies: [i1$2.NgClass, i1$2.NgForOf, i1$2.NgIf, i2.ɵNgNoValidate, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, NativeElementDirective, FormValidationSummaryComponent, ItemValidationSummaryComponent], encapsulation: 2 }); }
7573
+ } }, dependencies: [i1$2.NgClass, i1$2.NgForOf, i1$2.NgIf, i2$1.ɵNgNoValidate, i2$1.NgSelectOption, i2$1.ɵNgSelectMultipleOption, i2$1.DefaultValueAccessor, i2$1.SelectControlValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, NativeElementDirective, FormValidationSummaryComponent, ItemValidationSummaryComponent], encapsulation: 2 }); }
6881
7574
  }
6882
7575
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactUsForm, [{
6883
7576
  type: Component,
6884
7577
  args: [{ selector: 'anatoly-forms-contactus-form', template: "<form (ngSubmit)='onSubmit()' [formGroup]='formGroup' novalidate>\r\n <anatoly-form-validation-summary [formGroup]='formGroup'\r\n [visible]='formSubmitted && formGroup.invalid'></anatoly-form-validation-summary>\r\n\r\n <div class='contact-us'>\r\n <div class=\"row\">\r\n <div class='form-fields col-6'>\r\n <p>What can we help you with?</p>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('topic') }\" class='form-topic'>\r\n <div class='form-select-wrapper'>\r\n <label class='assistive-text'>Topic *</label>\r\n <select (change)='onTopicChange($event)' class='form-select' formControlName='topic'>\r\n <option *ngFor='let topic of topicList' [value]='topic.value'>{{ topic.value }} </option>\r\n </select>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='topic'\r\n controlTitle='topic'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('name') }\" class='form-name'>\r\n <label class='assistive-text'>Name *</label>\r\n <input class='form-control' formControlName='name' placeholder='Name *' type='text'>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='name'\r\n controlTitle='name'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('email') }\" class='form-email'>\r\n <label class='assistive-text'>E-mail * </label>\r\n <input class='form-control' formControlName='email' placeholder='E-mail *' type='text' />\r\n <p *ngIf='!isUserSignedIn'>Please indicate the email used for your MailEx login if you already have an account</p>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='email'\r\n controlTitle='email'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('subject') }\" class='form-subject'>\r\n <label class='assistive-text'>Subject *</label>\r\n <input class='form-control' formControlName='subject' placeholder='Subject *' type='text' />\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='subject'\r\n controlTitle='subject'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n </div>\r\n <div class='col-6'>\r\n <div [ngClass]=\"{'has-error': isControlInvalid('message') }\" class='form-message'>\r\n <label class='assistive-text'>Message *</label>\r\n <textarea formControlName='message' name='message' placeholder='Message *' rows='4'\r\n type='text'></textarea>\r\n <anatoly-item-validation-summary [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'\r\n controlName='message'\r\n controlTitle='message'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row form-footer\">\r\n <div class=\"col\">\r\n <button *ngIf='showActionButtons'\r\n [class.btn-primary]='!formGroup.invalid'\r\n class='btn btn-success'\r\n type='submit'>\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n" }]
6885
- }], () => [{ type: i1$8.ReCaptchaV3Service }, { type: i2.FormBuilder }, { type: AppContextService }, { type: EmailsApiService }, { type: NotificationService }], { showActionButtons: [{
7578
+ }], () => [{ type: i1$8.ReCaptchaV3Service }, { type: i2$1.FormBuilder }, { type: AppContextService }, { type: EmailsApiService }, { type: NotificationService }], { showActionButtons: [{
6886
7579
  type: Input
6887
7580
  }], submit: [{
6888
7581
  type: Output
@@ -6895,8 +7588,8 @@ class ContactUsForm extends EditComponentBase {
6895
7588
  @osovitny/anatoly
6896
7589
 
6897
7590
  Authors:
6898
- Vadim Osovitny vadim@osovitny.com
6899
- Anatoly Osovitny anatoly@osovitny.com
7591
+ Vadim Osovitny vadim.osovitny@osovitny.com
7592
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6900
7593
 
6901
7594
  Created:
6902
7595
  16 July 2022
@@ -6950,7 +7643,7 @@ class ContactUsDialog extends DialogBase {
6950
7643
  i0.ɵɵtemplate(0, ContactUsDialog_kendo_dialog_0_Template, 10, 2, "kendo-dialog", 0);
6951
7644
  } if (rf & 2) {
6952
7645
  i0.ɵɵproperty("ngIf", ctx.isOpen);
6953
- } }, dependencies: [i1$2.NgIf, i2$1.DialogComponent, i2$1.DialogActionsComponent, ContactUsForm], encapsulation: 2 }); }
7646
+ } }, dependencies: [i1$2.NgIf, i2.DialogComponent, i2.DialogActionsComponent, ContactUsForm], encapsulation: 2 }); }
6954
7647
  }
6955
7648
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactUsDialog, [{
6956
7649
  type: Component,
@@ -6967,8 +7660,8 @@ class ContactUsDialog extends DialogBase {
6967
7660
  @osovitny/anatoly
6968
7661
 
6969
7662
  Authors:
6970
- Vadim Osovitny vadim@osovitny.com
6971
- Anatoly Osovitny anatoly@osovitny.com
7663
+ Vadim Osovitny vadim.osovitny@osovitny.com
7664
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6972
7665
 
6973
7666
  Created:
6974
7667
  2 Aug 2022
@@ -6983,8 +7676,8 @@ class ContactUsDialog extends DialogBase {
6983
7676
  @osovitny/anatoly
6984
7677
 
6985
7678
  Authors:
6986
- Vadim Osovitny vadim@osovitny.com
6987
- Anatoly Osovitny anatoly@osovitny.com
7679
+ Vadim Osovitny vadim.osovitny@osovitny.com
7680
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6988
7681
 
6989
7682
  Created:
6990
7683
  24 Feb 2023
@@ -7032,8 +7725,8 @@ class HoveringDirective {
7032
7725
  @osovitny/anatoly
7033
7726
 
7034
7727
  Authors:
7035
- Vadim Osovitny vadim@osovitny.com
7036
- Anatoly Osovitny anatoly@osovitny.com
7728
+ Vadim Osovitny vadim.osovitny@osovitny.com
7729
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7037
7730
 
7038
7731
  Created:
7039
7732
  2 Aug 2022
@@ -7048,8 +7741,8 @@ class HoveringDirective {
7048
7741
  @osovitny/anatoly
7049
7742
 
7050
7743
  Authors:
7051
- Vadim Osovitny vadim@osovitny.com
7052
- Anatoly Osovitny anatoly@osovitny.com
7744
+ Vadim Osovitny vadim.osovitny@osovitny.com
7745
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7053
7746
 
7054
7747
  Created:
7055
7748
  02 Aug 2022
@@ -7196,7 +7889,7 @@ class AddressComponent extends EditComponentBase {
7196
7889
  let usState = event.target.value;
7197
7890
  this.change.emit(usState);
7198
7891
  }
7199
- static { this.ɵfac = function AddressComponent_Factory(t) { return new (t || AddressComponent)(i0.ɵɵdirectiveInject(i2.FormBuilder), i0.ɵɵdirectiveInject(CoreApiService)); }; }
7892
+ static { this.ɵfac = function AddressComponent_Factory(t) { return new (t || AddressComponent)(i0.ɵɵdirectiveInject(i2$1.FormBuilder), i0.ɵɵdirectiveInject(CoreApiService)); }; }
7200
7893
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: AddressComponent, selectors: [["anatoly-forms-address"]], inputs: { address: "address" }, outputs: { change: "change" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 29, consts: [["classes", "card-primary card-outline"], [3, "title", 4, "ngIf"], [1, "row", 3, "formGroup"], [1, "form-group", "col-12", 3, "ngClass"], [1, "col-form-label", "required"], ["type", "text", "formControlName", "address_street", "placeholder", "Street Address", 1, "form-control"], ["controlName", "address_street", "controlTitle", "Street", 3, "formGroup", "formSubmitted"], ["type", "text", "formControlName", "address_street2", "placeholder", "Apartment, suite, unit, building, floor, etc.", 1, "form-control"], ["controlName", "address_street2", "controlTitle", "Street2", 3, "formGroup", "formSubmitted"], [1, "form-group", "col-3", 3, "ngClass"], ["type", "text", "formControlName", "address_city", "placeholder", "City", 1, "form-control"], ["controlName", "address_city", "controlTitle", "City", 3, "formGroup", "formSubmitted"], ["class", "form-group col-3", 3, "ngClass", 4, "ngIf"], ["type", "text", "formControlName", "address_zipcode", "placeholder", "zipcode", 1, "form-control"], ["controlName", "address_zipcode", "controlTitle", "zipcode", 3, "formGroup", "formSubmitted"], ["formControlName", "address_country", "data-placeholder", "Select a Country", 1, "form-control", 3, "change"], [3, "value", 4, "ngFor", "ngForOf"], ["controlName", "address_country", "controlTitle", "Country", 3, "formGroup", "formSubmitted"], [3, "title"], ["formControlName", "address_stateOrRegion", 1, "form-control", 3, "change"], ["controlName", "address_stateOrRegion", "controlTitle", "State", 3, "formGroup", "formSubmitted"], [3, "value"]], template: function AddressComponent_Template(rf, ctx) { if (rf & 1) {
7201
7894
  i0.ɵɵelementStart(0, "anatoly-card", 0);
7202
7895
  i0.ɵɵtemplate(1, AddressComponent_anatoly_card_header_1_Template, 1, 1, "anatoly-card-header", 1);
@@ -7257,12 +7950,12 @@ class AddressComponent extends EditComponentBase {
7257
7950
  i0.ɵɵproperty("ngForOf", ctx.countryData);
7258
7951
  i0.ɵɵadvance();
7259
7952
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
7260
- } }, dependencies: [i1$2.NgClass, i1$2.NgForOf, i1$2.NgIf, i2.NgSelectOption, i2.ɵNgSelectMultipleOption, i2.DefaultValueAccessor, i2.SelectControlValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.FormGroupDirective, i2.FormControlName, CardComponent, CardHeaderComponent, CardBodyComponent, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
7953
+ } }, dependencies: [i1$2.NgClass, i1$2.NgForOf, i1$2.NgIf, i2$1.NgSelectOption, i2$1.ɵNgSelectMultipleOption, i2$1.DefaultValueAccessor, i2$1.SelectControlValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.FormGroupDirective, i2$1.FormControlName, CardComponent, CardHeaderComponent, CardBodyComponent, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
7261
7954
  }
7262
7955
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddressComponent, [{
7263
7956
  type: Component,
7264
7957
  args: [{ selector: 'anatoly-forms-address', template: "<anatoly-card classes='card-primary card-outline'>\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title'></anatoly-card-header>\r\n <anatoly-card-body>\r\n <div class='row' [formGroup]='formGroup'>\r\n <div class='form-group col-12' [ngClass]=\"{'has-error': isControlInvalid('address_street')}\" >\r\n <label class='col-form-label required'>Street Address</label>\r\n <input type='text' class='form-control' formControlName='address_street' placeholder='Street Address'>\r\n <anatoly-item-validation-summary controlName='address_street'\r\n controlTitle='Street'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div class='form-group col-12' [ngClass]=\"{'has-error': isControlInvalid('address_street2')}\" >\r\n <input type='text' class='form-control' formControlName='address_street2' placeholder='Apartment, suite, unit, building, floor, etc.'>\r\n <anatoly-item-validation-summary controlName='address_street2'\r\n controlTitle='Street2'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div class='form-group col-3' [ngClass]=\"{'has-error': isControlInvalid('address_city')}\">\r\n <label class='col-form-label required'>City</label>\r\n <input type='text' class='form-control' formControlName='address_city' placeholder='City'>\r\n <anatoly-item-validation-summary controlName='address_city'\r\n controlTitle='City'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div class='form-group col-3' *ngIf=\"formGroup.value.address_country == 'US'\" [ngClass]=\"{'has-error': isControlInvalid('address_stateOrRegion')}\">\r\n <label class='col-form-label required'>State</label>\r\n <select class='form-control' (change)='onUSStateChange($event)' formControlName='address_stateOrRegion'>\r\n <option *ngFor='let state of usStateData' [value]='state.code'>{{state.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary controlName='address_stateOrRegion'\r\n controlTitle='State'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div class='form-group col-3' [ngClass]=\"{'has-error': isControlInvalid('address_zipcode')}\" >\r\n <label class='col-form-label required'>zipcode</label>\r\n <input type='text' class='form-control' formControlName='address_zipcode' placeholder='zipcode'>\r\n <anatoly-item-validation-summary controlName='address_zipcode'\r\n controlTitle='zipcode'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n <div class='form-group col-3' [ngClass]=\"{'has-error': isControlInvalid('address_country')}\">\r\n <label class='col-form-label required'>Country</label>\r\n <select class='form-control' (change)='onCountryChange($event)' formControlName='address_country' data-placeholder='Select a Country'>\r\n <option *ngFor='let country of countryData' [value]='country.code'>{{country.name}}</option>\r\n </select>\r\n <anatoly-item-validation-summary controlName='address_country'\r\n controlTitle='Country'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n" }]
7265
- }], () => [{ type: i2.FormBuilder }, { type: CoreApiService }], { address: [{
7958
+ }], () => [{ type: i2$1.FormBuilder }, { type: CoreApiService }], { address: [{
7266
7959
  type: Input
7267
7960
  }], change: [{
7268
7961
  type: Output
@@ -7275,8 +7968,8 @@ class AddressComponent extends EditComponentBase {
7275
7968
  @osovitny/anatoly
7276
7969
 
7277
7970
  Authors:
7278
- Vadim Osovitny vadim@osovitny.com
7279
- Anatoly Osovitny anatoly@osovitny.com
7971
+ Vadim Osovitny vadim.osovitny@osovitny.com
7972
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7280
7973
 
7281
7974
  Created:
7282
7975
  02 Aug 2022
@@ -7341,7 +8034,7 @@ class CompanyComponent extends EditComponentBase {
7341
8034
  };
7342
8035
  return JSON.stringify(data);
7343
8036
  }
7344
- static { this.ɵfac = function CompanyComponent_Factory(t) { return new (t || CompanyComponent)(i0.ɵɵdirectiveInject(i2.FormBuilder)); }; }
8037
+ static { this.ɵfac = function CompanyComponent_Factory(t) { return new (t || CompanyComponent)(i0.ɵɵdirectiveInject(i2$1.FormBuilder)); }; }
7345
8038
  static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CompanyComponent, selectors: [["anatoly-forms-company"]], inputs: { company: "company" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 24, vars: 22, consts: [["classes", "card-primary card-outline"], [3, "title", 4, "ngIf"], [1, "row", 3, "formGroup"], [1, "form-group", "col-6", 3, "ngClass"], [1, "col-form-label"], ["type", "text", "formControlName", "company_name", "placeholder", "Company Name", 1, "form-control"], ["controlName", "company_name", "controlTitle", "Company Name", 3, "formGroup", "formSubmitted"], ["type", "tel", "formControlName", "company_phone", "placeholder", "Company Phone", 1, "form-control"], ["controlName", "company_phone", "controlTitle", "Company Phone", 3, "formGroup", "formSubmitted"], ["type", "email", "formControlName", "company_email", "placeholder", "Company Email", 1, "form-control"], ["controlName", "company_email", "controlTitle", "Company Email", 3, "formGroup", "formSubmitted"], ["type", "url", "placeholder", "https://example.com", "pattern", "https://.*", "size", "30", "formControlName", "company_websiteUrl", 1, "form-control"], ["controlName", "company_websiteUrl", "controlTitle", "Company website url", 3, "formGroup", "formSubmitted"], [3, "title"]], template: function CompanyComponent_Template(rf, ctx) { if (rf & 1) {
7346
8039
  i0.ɵɵelementStart(0, "anatoly-card", 0);
7347
8040
  i0.ɵɵtemplate(1, CompanyComponent_anatoly_card_header_1_Template, 1, 1, "anatoly-card-header", 1);
@@ -7386,12 +8079,12 @@ class CompanyComponent extends EditComponentBase {
7386
8079
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c0, ctx.isControlInvalid("company_websiteUrl")));
7387
8080
  i0.ɵɵadvance(4);
7388
8081
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
7389
- } }, dependencies: [i1$2.NgClass, i1$2.NgIf, i2.DefaultValueAccessor, i2.NgControlStatus, i2.NgControlStatusGroup, i2.PatternValidator, i2.FormGroupDirective, i2.FormControlName, CardComponent, CardHeaderComponent, CardBodyComponent, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
8082
+ } }, dependencies: [i1$2.NgClass, i1$2.NgIf, i2$1.DefaultValueAccessor, i2$1.NgControlStatus, i2$1.NgControlStatusGroup, i2$1.PatternValidator, i2$1.FormGroupDirective, i2$1.FormControlName, CardComponent, CardHeaderComponent, CardBodyComponent, NativeElementDirective, ItemValidationSummaryComponent], encapsulation: 2 }); }
7390
8083
  }
7391
8084
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CompanyComponent, [{
7392
8085
  type: Component,
7393
8086
  args: [{ selector: 'anatoly-forms-company', template: "<anatoly-card classes='card-primary card-outline'>\r\n <anatoly-card-header *ngIf='isTitleVisible' [title]='title'></anatoly-card-header>\r\n <anatoly-card-body>\r\n <div [formGroup]='formGroup' class='row'>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_name') }\">\r\n <label class='col-form-label'>Name</label>\r\n <input type='text' class='form-control' formControlName='company_name' placeholder='Company Name'>\r\n <anatoly-item-validation-summary controlName='company_name'\r\n controlTitle='Company Name'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_phone') }\">\r\n <label class='col-form-label'>Phone</label>\r\n <input type='tel' class='form-control' formControlName='company_phone' placeholder='Company Phone'>\r\n <anatoly-item-validation-summary controlName='company_phone'\r\n controlTitle='Company Phone'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_email') }\">\r\n <label class='col-form-label'>Email</label>\r\n <input type='email' class='form-control' formControlName='company_email' placeholder='Company Email'>\r\n <anatoly-item-validation-summary controlName='company_email'\r\n controlTitle='Company Email'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n <div class='form-group col-6' [ngClass]=\"{'has-error': isControlInvalid('company_websiteUrl') }\">\r\n <label class='col-form-label'>Website Url</label>\r\n <input type='url' placeholder='https://example.com' pattern='https://.*' size='30'\r\n class='form-control' formControlName='company_websiteUrl'>\r\n <anatoly-item-validation-summary controlName='company_websiteUrl'\r\n controlTitle='Company website url'\r\n [formGroup]='formGroup'\r\n [formSubmitted]='formSubmitted'>\r\n </anatoly-item-validation-summary>\r\n </div>\r\n\r\n </div>\r\n </anatoly-card-body>\r\n</anatoly-card>\r\n" }]
7394
- }], () => [{ type: i2.FormBuilder }], { company: [{
8087
+ }], () => [{ type: i2$1.FormBuilder }], { company: [{
7395
8088
  type: Input
7396
8089
  }] }); })();
7397
8090
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompanyComponent, { className: "CompanyComponent", filePath: "lib\\ui\\forms\\components\\company\\company.component.ts", lineNumber: 28 }); })();
@@ -7402,8 +8095,8 @@ class CompanyComponent extends EditComponentBase {
7402
8095
  @osovitny/anatoly
7403
8096
 
7404
8097
  Authors:
7405
- Vadim Osovitny vadim@osovitny.com
7406
- Anatoly Osovitny anatoly@osovitny.com
8098
+ Vadim Osovitny vadim.osovitny@osovitny.com
8099
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7407
8100
 
7408
8101
  Created:
7409
8102
  2 Aug 2022
@@ -7419,8 +8112,8 @@ class CompanyComponent extends EditComponentBase {
7419
8112
  @osovitny/anatoly
7420
8113
 
7421
8114
  Authors:
7422
- Vadim Osovitny vadim@osovitny.com
7423
- Anatoly Osovitny anatoly@osovitny.com
8115
+ Vadim Osovitny vadim.osovitny@osovitny.com
8116
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7424
8117
 
7425
8118
  Created:
7426
8119
  26 Jun 2020
@@ -7459,8 +8152,8 @@ class FileSizePipe {
7459
8152
  @osovitny/anatoly
7460
8153
 
7461
8154
  Authors:
7462
- Vadim Osovitny vadim@osovitny.com
7463
- Anatoly Osovitny anatoly@osovitny.com
8155
+ Vadim Osovitny vadim.osovitny@osovitny.com
8156
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7464
8157
 
7465
8158
  Created:
7466
8159
  26 Jun 2020
@@ -7494,8 +8187,8 @@ class ReplaceTextPipe {
7494
8187
  @osovitny/anatoly
7495
8188
 
7496
8189
  Authors:
7497
- Vadim Osovitny vadim@osovitny.com
7498
- Anatoly Osovitny anatoly@osovitny.com
8190
+ Vadim Osovitny vadim.osovitny@osovitny.com
8191
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7499
8192
 
7500
8193
  Created:
7501
8194
  27 Oct 2019
@@ -7525,8 +8218,8 @@ class SafeHtmlPipe {
7525
8218
  @osovitny/anatoly
7526
8219
 
7527
8220
  Authors:
7528
- Vadim Osovitny vadim@osovitny.com
7529
- Anatoly Osovitny anatoly@osovitny.com
8221
+ Vadim Osovitny vadim.osovitny@osovitny.com
8222
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7530
8223
 
7531
8224
  Created:
7532
8225
  2 Aug 2022
@@ -7541,8 +8234,8 @@ class SafeHtmlPipe {
7541
8234
  @osovitny/anatoly
7542
8235
 
7543
8236
  Authors:
7544
- Vadim Osovitny vadim@osovitny.com
7545
- Anatoly Osovitny anatoly@osovitny.com
8237
+ Vadim Osovitny vadim.osovitny@osovitny.com
8238
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7546
8239
 
7547
8240
  Created:
7548
8241
  2 Aug 2022
@@ -7557,8 +8250,24 @@ class SafeHtmlPipe {
7557
8250
  @osovitny/anatoly
7558
8251
 
7559
8252
  Authors:
7560
- Vadim Osovitny vadim@osovitny.com
7561
- Anatoly Osovitny anatoly@osovitny.com
8253
+ Vadim Osovitny vadim.osovitny@osovitny.com
8254
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8255
+
8256
+ Created:
8257
+ 8 Nov 2024
8258
+
8259
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
8260
+ </file>
8261
+ */
8262
+
8263
+ /*
8264
+ <file>
8265
+ Project:
8266
+ @osovitny/anatoly
8267
+
8268
+ Authors:
8269
+ Vadim Osovitny vadim.osovitny@osovitny.com
8270
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7562
8271
 
7563
8272
  Created:
7564
8273
  29 June 2020
@@ -7582,10 +8291,13 @@ class AnatolyCoreModule {
7582
8291
  DigitalMarketingService,
7583
8292
  GoogleAnalyticsService,
7584
8293
  LoadingService,
8294
+ ScriptService,
7585
8295
  StarterService,
7586
8296
  LocalStorageService,
7587
8297
  SessionStorageService,
8298
+ //Logging
7588
8299
  LoggingService,
8300
+ //Notifications
7589
8301
  NotificationService
7590
8302
  ], imports: [CommonModule,
7591
8303
  RouterModule,
@@ -7617,10 +8329,13 @@ class AnatolyCoreModule {
7617
8329
  DigitalMarketingService,
7618
8330
  GoogleAnalyticsService,
7619
8331
  LoadingService,
8332
+ ScriptService,
7620
8333
  StarterService,
7621
8334
  LocalStorageService,
7622
8335
  SessionStorageService,
8336
+ //Logging
7623
8337
  LoggingService,
8338
+ //Notifications
7624
8339
  NotificationService
7625
8340
  ]
7626
8341
  }]
@@ -7641,8 +8356,7 @@ class AnatolyCoreModule {
7641
8356
  @osovitny/anatoly
7642
8357
 
7643
8358
  Authors:
7644
- Vadim Osovitny vadim@osovitny.com
7645
- Anatoly Osovitny anatoly@osovitny.com
8359
+ Vadim Osovitny vadim.osovitny@osovitny.com
7646
8360
 
7647
8361
  Created:
7648
8362
  4 Mar 2020
@@ -7655,6 +8369,9 @@ class AnatolyDataModule {
7655
8369
  static { this.ɵfac = function AnatolyDataModule_Factory(t) { return new (t || AnatolyDataModule)(); }; }
7656
8370
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyDataModule }); }
7657
8371
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
8372
+ //Billing
8373
+ PaymentsApiService,
8374
+ //App
7658
8375
  CoreApiService,
7659
8376
  EmailsApiService
7660
8377
  ], imports: [CommonModule] }); }
@@ -7666,6 +8383,9 @@ class AnatolyDataModule {
7666
8383
  CommonModule
7667
8384
  ],
7668
8385
  providers: [
8386
+ //Billing
8387
+ PaymentsApiService,
8388
+ //App
7669
8389
  CoreApiService,
7670
8390
  EmailsApiService
7671
8391
  ]
@@ -7679,8 +8399,8 @@ class AnatolyDataModule {
7679
8399
  @osovitny/anatoly
7680
8400
 
7681
8401
  Authors:
7682
- Vadim Osovitny vadim@osovitny.com
7683
- Anatoly Osovitny anatoly@osovitny.com
8402
+ Vadim Osovitny vadim.osovitny@osovitny.com
8403
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7684
8404
 
7685
8405
  Created:
7686
8406
  2 May 2023
@@ -7783,8 +8503,8 @@ function loggerCallback(logLevel, message, containsPii) {
7783
8503
  @osovitny/anatoly
7784
8504
 
7785
8505
  Authors:
7786
- Vadim Osovitny vadim@osovitny.com
7787
- Anatoly Osovitny anatoly@osovitny.com
8506
+ Vadim Osovitny vadim.osovitny@osovitny.com
8507
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7788
8508
 
7789
8509
  Created:
7790
8510
  6 Dec 2018
@@ -7857,8 +8577,8 @@ class AnatolyIAMModule {
7857
8577
  @osovitny/anatoly
7858
8578
 
7859
8579
  Authors:
7860
- Vadim Osovitny vadim@osovitny.com
7861
- Anatoly Osovitny anatoly@osovitny.com
8580
+ Vadim Osovitny vadim.osovitny@osovitny.com
8581
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7862
8582
 
7863
8583
  Created:
7864
8584
  20 Sep 2023
@@ -7893,8 +8613,8 @@ class SignInPage extends PageBase {
7893
8613
  @osovitny/anatoly
7894
8614
 
7895
8615
  Authors:
7896
- Vadim Osovitny vadim@osovitny.com
7897
- Anatoly Osovitny anatoly@osovitny.com
8616
+ Vadim Osovitny vadim.osovitny@osovitny.com
8617
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7898
8618
 
7899
8619
  Created:
7900
8620
  20 Sep 2023
@@ -7929,8 +8649,8 @@ class SignOutPage extends PageBase {
7929
8649
  @osovitny/anatoly
7930
8650
 
7931
8651
  Authors:
7932
- Vadim Osovitny vadim@osovitny.com
7933
- Anatoly Osovitny anatoly@osovitny.com
8652
+ Vadim Osovitny vadim.osovitny@osovitny.com
8653
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7934
8654
 
7935
8655
  Created:
7936
8656
  20 Sep 2023
@@ -7965,8 +8685,8 @@ class SignUpPage extends PageBase {
7965
8685
  @osovitny/anatoly
7966
8686
 
7967
8687
  Authors:
7968
- Vadim Osovitny vadim@osovitny.com
7969
- Anatoly Osovitny anatoly@osovitny.com
8688
+ Vadim Osovitny vadim.osovitny@osovitny.com
8689
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7970
8690
 
7971
8691
  Created:
7972
8692
  2 May 2023
@@ -8005,8 +8725,8 @@ const PAGES = [
8005
8725
  @osovitny/anatoly
8006
8726
 
8007
8727
  Authors:
8008
- Vadim Osovitny vadim@osovitny.com
8009
- Anatoly Osovitny anatoly@osovitny.com
8728
+ Vadim Osovitny vadim.osovitny@osovitny.com
8729
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8010
8730
 
8011
8731
  Created:
8012
8732
  6 Dec 2018
@@ -8051,54 +8771,7 @@ class AnatolyIAMPagesModule {
8051
8771
  @osovitny/anatoly
8052
8772
 
8053
8773
  Authors:
8054
- Vadim Osovitny vadim@osovitny.com
8055
- Anatoly Osovitny anatoly@osovitny.com
8056
-
8057
- Created:
8058
- 14 Jun 2024
8059
-
8060
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
8061
- </file>
8062
- */
8063
- //Node
8064
- class AnatolyPaymentsModule {
8065
- static { this.ɵfac = function AnatolyPaymentsModule_Factory(t) { return new (t || AnatolyPaymentsModule)(); }; }
8066
- static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyPaymentsModule }); }
8067
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
8068
- ScriptService,
8069
- //PayPal
8070
- PayPalScriptService
8071
- ], imports: [CommonModule] }); }
8072
- }
8073
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnatolyPaymentsModule, [{
8074
- type: NgModule,
8075
- args: [{
8076
- imports: [
8077
- CommonModule
8078
- ],
8079
- declarations: [
8080
- PayPalComponent
8081
- ],
8082
- exports: [
8083
- PayPalComponent
8084
- ],
8085
- providers: [
8086
- ScriptService,
8087
- //PayPal
8088
- PayPalScriptService
8089
- ]
8090
- }]
8091
- }], null, null); })();
8092
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyPaymentsModule, { declarations: [PayPalComponent], imports: [CommonModule], exports: [PayPalComponent] }); })();
8093
-
8094
- /*
8095
- <file>
8096
- Project:
8097
- @osovitny/anatoly
8098
-
8099
- Authors:
8100
- Vadim Osovitny vadim@osovitny.com
8101
- Anatoly Osovitny anatoly@osovitny.com
8774
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8102
8775
 
8103
8776
  Created:
8104
8777
  25 Aug 2022
@@ -8137,8 +8810,7 @@ class FaModule {
8137
8810
  @osovitny/anatoly
8138
8811
 
8139
8812
  Authors:
8140
- Vadim Osovitny vadim@osovitny.com
8141
- Anatoly Osovitny anatoly@osovitny.com
8813
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8142
8814
 
8143
8815
  Created:
8144
8816
  28 Aug 2022
@@ -8216,57 +8888,245 @@ class KendoModule {
8216
8888
  @osovitny/anatoly
8217
8889
 
8218
8890
  Authors:
8219
- Vadim Osovitny vadim@osovitny.com
8220
- Anatoly Osovitny anatoly@osovitny.com
8891
+ Vadim Osovitny vadim.osovitny@osovitny.com
8221
8892
 
8222
8893
  Created:
8223
- 26 Jun 2020
8894
+ 8 Nov 2024
8895
+
8896
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
8897
+ </file>
8898
+ */
8899
+ const PAYMENTS_COMPONENTS = [
8900
+ PaypalButtonComponent,
8901
+ PayPalComponent,
8902
+ //Dialogs
8903
+ BraintreeDialog,
8904
+ StripeDialog
8905
+ ];
8906
+
8907
+ /*
8908
+ <file>
8909
+ Project:
8910
+ @osovitny/anatoly
8911
+
8912
+ Authors:
8913
+ Vadim Osovitny vadim.osovitny@osovitny.com
8914
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8915
+
8916
+ Created:
8917
+ 14 Jun 2024
8224
8918
 
8225
8919
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
8226
8920
  </file>
8227
8921
  */
8228
8922
  //Node
8229
- const COMPONENTS = [
8923
+ class AnatolyBillingModule {
8924
+ static { this.ɵfac = function AnatolyBillingModule_Factory(t) { return new (t || AnatolyBillingModule)(); }; }
8925
+ static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyBillingModule }); }
8926
+ static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
8927
+ ScriptService,
8928
+ PayPalScriptService,
8929
+ //Payments
8930
+ PaymentsService
8931
+ ], imports: [CommonModule,
8932
+ FaModule,
8933
+ KendoModule] }); }
8934
+ }
8935
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnatolyBillingModule, [{
8936
+ type: NgModule,
8937
+ args: [{
8938
+ imports: [
8939
+ CommonModule,
8940
+ FaModule,
8941
+ KendoModule
8942
+ ],
8943
+ declarations: [
8944
+ PAYMENTS_COMPONENTS
8945
+ ],
8946
+ exports: [
8947
+ PAYMENTS_COMPONENTS
8948
+ ],
8949
+ providers: [
8950
+ ScriptService,
8951
+ PayPalScriptService,
8952
+ //Payments
8953
+ PaymentsService
8954
+ ]
8955
+ }]
8956
+ }], null, null); })();
8957
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyBillingModule, { declarations: [PaypalButtonComponent, PayPalComponent, BraintreeDialog, StripeDialog], imports: [CommonModule,
8958
+ FaModule,
8959
+ KendoModule], exports: [PaypalButtonComponent, PayPalComponent, BraintreeDialog, StripeDialog] }); })();
8960
+
8961
+ /*
8962
+ <file>
8963
+ Project:
8964
+ @osovitny/anatoly
8965
+
8966
+ Authors:
8967
+ Vadim Osovitny vadim.osovitny@osovitny.com
8968
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8969
+
8970
+ Created:
8971
+ 2 Aug 2022
8972
+
8973
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
8974
+ </file>
8975
+ */
8976
+ const MAIN_COMPONENTS = [
8977
+ //Billing
8230
8978
  BuyAccessButtonComponent,
8231
8979
  SubscribePlanButtonComponent,
8980
+ //Cards
8981
+ CardComponent,
8982
+ CardHeaderComponent,
8983
+ CardBodyComponent,
8984
+ CardFooterComponent,
8232
8985
  CheckIconComponent,
8986
+ Copy2ClipboardComponent,
8233
8987
  DataPagerComponent,
8988
+ //Dropdownlists
8989
+ CountryDropdownlist,
8990
+ TimezoneDropdownlist,
8991
+ //EhmlEditor
8992
+ HtmlEditorComponent,
8993
+ FormsHtmlEditorComponent,
8994
+ //Identity
8234
8995
  SignInButtonComponent,
8235
8996
  SignUpButtonComponent,
8236
8997
  SignOutButtonComponent,
8237
8998
  NodataComponent,
8999
+ //Spinners
8238
9000
  PageSpinnerComponent,
8239
9001
  LoadingComponent,
8240
- Copy2ClipboardComponent,
8241
- UrlSlugComponent,
8242
- //Dropdownlists
8243
- CountryDropdownlist,
8244
- TimezoneDropdownlist,
8245
- //Cards
8246
- CardComponent,
8247
- CardHeaderComponent,
8248
- CardBodyComponent,
8249
- CardFooterComponent,
8250
- //HtmlEditor
8251
- HtmlEditorComponent,
8252
- FormsHtmlEditorComponent,
8253
- //Dialogs
8254
- ContactUsDialog,
8255
- //Directives
9002
+ UrlSlugComponent
9003
+ ];
9004
+
9005
+ /*
9006
+ <file>
9007
+ Project:
9008
+ @osovitny/anatoly
9009
+
9010
+ Authors:
9011
+ Vadim Osovitny vadim.osovitny@osovitny.com
9012
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
9013
+
9014
+ Created:
9015
+ 2 Aug 2022
9016
+
9017
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
9018
+ </file>
9019
+ */
9020
+ const DIALOGS = [
9021
+ ContactUsDialog
9022
+ ];
9023
+
9024
+ /*
9025
+ <file>
9026
+ Project:
9027
+ @osovitny/anatoly
9028
+
9029
+ Authors:
9030
+ Vadim Osovitny vadim.osovitny@osovitny.com
9031
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
9032
+
9033
+ Created:
9034
+ 2 Aug 2022
9035
+
9036
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
9037
+ </file>
9038
+ */
9039
+ const DIRECTIVES = [
8256
9040
  NativeElementDirective,
8257
- HoveringDirective,
8258
- //Forms
9041
+ HoveringDirective
9042
+ ];
9043
+
9044
+ /*
9045
+ <file>
9046
+ Project:
9047
+ @osovitny/anatoly
9048
+
9049
+ Authors:
9050
+ Vadim Osovitny vadim.osovitny@osovitny.com
9051
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
9052
+
9053
+ Created:
9054
+ 2 Aug 2022
9055
+
9056
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
9057
+ </file>
9058
+ */
9059
+ const FORMS = [
8259
9060
  AddressComponent,
8260
9061
  CompanyComponent,
8261
- ContactUsForm,
8262
- //Pipes
9062
+ ContactUsForm
9063
+ ];
9064
+
9065
+ /*
9066
+ <file>
9067
+ Project:
9068
+ @osovitny/anatoly
9069
+
9070
+ Authors:
9071
+ Vadim Osovitny vadim.osovitny@osovitny.com
9072
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
9073
+
9074
+ Created:
9075
+ 2 Aug 2022
9076
+
9077
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
9078
+ </file>
9079
+ */
9080
+ const PIPES = [
8263
9081
  SafeHtmlPipe,
8264
9082
  ReplaceTextPipe,
8265
- FileSizePipe,
8266
- //Validation
9083
+ FileSizePipe
9084
+ ];
9085
+
9086
+ /*
9087
+ <file>
9088
+ Project:
9089
+ @osovitny/anatoly
9090
+
9091
+ Authors:
9092
+ Vadim Osovitny vadim.osovitny@osovitny.com
9093
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
9094
+
9095
+ Created:
9096
+ 2 Aug 2022
9097
+
9098
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
9099
+ </file>
9100
+ */
9101
+ const VALIDATION_COMPONENTS = [
8267
9102
  FormValidationSummaryComponent,
8268
9103
  ItemValidationSummaryComponent
8269
9104
  ];
9105
+
9106
+ /*
9107
+ <file>
9108
+ Project:
9109
+ @osovitny/anatoly
9110
+
9111
+ Authors:
9112
+ Vadim Osovitny vadim.osovitny@osovitny.com
9113
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
9114
+
9115
+ Created:
9116
+ 26 Jun 2020
9117
+
9118
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
9119
+ </file>
9120
+ */
9121
+ //Node
9122
+ const COMPONENTS = [
9123
+ MAIN_COMPONENTS,
9124
+ DIALOGS,
9125
+ DIRECTIVES,
9126
+ FORMS,
9127
+ PIPES,
9128
+ VALIDATION_COMPONENTS
9129
+ ];
8270
9130
  class AnatolyUIModule {
8271
9131
  static { this.ɵfac = function AnatolyUIModule_Factory(t) { return new (t || AnatolyUIModule)(); }; }
8272
9132
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyUIModule }); }
@@ -8300,99 +9160,22 @@ class AnatolyUIModule {
8300
9160
  ]
8301
9161
  }]
8302
9162
  }], null, null); })();
8303
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyUIModule, { declarations: [BuyAccessButtonComponent,
8304
- SubscribePlanButtonComponent,
8305
- CheckIconComponent,
8306
- DataPagerComponent,
8307
- SignInButtonComponent,
8308
- SignUpButtonComponent,
8309
- SignOutButtonComponent,
8310
- NodataComponent,
8311
- PageSpinnerComponent,
8312
- LoadingComponent,
8313
- Copy2ClipboardComponent,
8314
- UrlSlugComponent,
8315
- //Dropdownlists
8316
- CountryDropdownlist,
8317
- TimezoneDropdownlist,
8318
- //Cards
8319
- CardComponent,
8320
- CardHeaderComponent,
8321
- CardBodyComponent,
8322
- CardFooterComponent,
8323
- //HtmlEditor
8324
- HtmlEditorComponent,
8325
- FormsHtmlEditorComponent,
8326
- //Dialogs
8327
- ContactUsDialog,
8328
- //Directives
8329
- NativeElementDirective,
8330
- HoveringDirective,
8331
- //Forms
8332
- AddressComponent,
8333
- CompanyComponent,
8334
- ContactUsForm,
8335
- //Pipes
8336
- SafeHtmlPipe,
8337
- ReplaceTextPipe,
8338
- FileSizePipe,
8339
- //Validation
8340
- FormValidationSummaryComponent,
8341
- ItemValidationSummaryComponent], imports: [CommonModule,
9163
+ (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyUIModule, { declarations: [BuyAccessButtonComponent, SubscribePlanButtonComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CheckIconComponent, Copy2ClipboardComponent, DataPagerComponent, CountryDropdownlist, TimezoneDropdownlist, HtmlEditorComponent, FormsHtmlEditorComponent, SignInButtonComponent, SignUpButtonComponent, SignOutButtonComponent, NodataComponent, PageSpinnerComponent, LoadingComponent, UrlSlugComponent, ContactUsDialog, NativeElementDirective, HoveringDirective, AddressComponent, CompanyComponent, ContactUsForm, SafeHtmlPipe, ReplaceTextPipe, FileSizePipe, FormValidationSummaryComponent, ItemValidationSummaryComponent], imports: [CommonModule,
8342
9164
  RouterModule,
8343
9165
  ReactiveFormsModule,
8344
9166
  FormsModule,
8345
9167
  NgxCaptchaModule,
8346
9168
  FERootModule,
8347
9169
  FaModule,
8348
- KendoModule], exports: [BuyAccessButtonComponent,
8349
- SubscribePlanButtonComponent,
8350
- CheckIconComponent,
8351
- DataPagerComponent,
8352
- SignInButtonComponent,
8353
- SignUpButtonComponent,
8354
- SignOutButtonComponent,
8355
- NodataComponent,
8356
- PageSpinnerComponent,
8357
- LoadingComponent,
8358
- Copy2ClipboardComponent,
8359
- UrlSlugComponent,
8360
- //Dropdownlists
8361
- CountryDropdownlist,
8362
- TimezoneDropdownlist,
8363
- //Cards
8364
- CardComponent,
8365
- CardHeaderComponent,
8366
- CardBodyComponent,
8367
- CardFooterComponent,
8368
- //HtmlEditor
8369
- HtmlEditorComponent,
8370
- FormsHtmlEditorComponent,
8371
- //Dialogs
8372
- ContactUsDialog,
8373
- //Directives
8374
- NativeElementDirective,
8375
- HoveringDirective,
8376
- //Forms
8377
- AddressComponent,
8378
- CompanyComponent,
8379
- ContactUsForm,
8380
- //Pipes
8381
- SafeHtmlPipe,
8382
- ReplaceTextPipe,
8383
- FileSizePipe,
8384
- //Validation
8385
- FormValidationSummaryComponent,
8386
- ItemValidationSummaryComponent] }); })();
8387
-
8388
- /*
8389
- <file>
8390
- Project:
8391
- @osovitny/anatoly
8392
-
8393
- Authors:
8394
- Vadim Osovitny vadim@osovitny.com
8395
- Anatoly Osovitny anatoly@osovitny.com
9170
+ KendoModule], exports: [BuyAccessButtonComponent, SubscribePlanButtonComponent, CardComponent, CardHeaderComponent, CardBodyComponent, CardFooterComponent, CheckIconComponent, Copy2ClipboardComponent, DataPagerComponent, CountryDropdownlist, TimezoneDropdownlist, HtmlEditorComponent, FormsHtmlEditorComponent, SignInButtonComponent, SignUpButtonComponent, SignOutButtonComponent, NodataComponent, PageSpinnerComponent, LoadingComponent, UrlSlugComponent, ContactUsDialog, NativeElementDirective, HoveringDirective, AddressComponent, CompanyComponent, ContactUsForm, SafeHtmlPipe, ReplaceTextPipe, FileSizePipe, FormValidationSummaryComponent, ItemValidationSummaryComponent] }); })();
9171
+
9172
+ /*
9173
+ <file>
9174
+ Project:
9175
+ @osovitny/anatoly
9176
+
9177
+ Authors:
9178
+ Vadim Osovitny vadim.osovitny@osovitny.com
8396
9179
 
8397
9180
  Created:
8398
9181
  29 Aug 2022
@@ -8441,13 +9224,13 @@ class AnatolyModule {
8441
9224
  AnatolyUIModule] }); })();
8442
9225
 
8443
9226
  /*
8444
- * Public API Surface of anatoly-lib
9227
+ * Public API
8445
9228
  */
8446
- //Core
9229
+ //Billing
8447
9230
 
8448
9231
  /**
8449
9232
  * Generated bundle index. Do not edit.
8450
9233
  */
8451
9234
 
8452
- export { AddressComponent, AdminGuard, Alerts, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyIAMModule, AnatolyIAMPagesModule, AnatolyModule, AnatolyPaymentsModule, AnatolyUIModule, ApiServiceBase, ApiUrl, AppContextService, AppCoreSettings, AppName, AppSettings, AppVersion, AuthService, AuthenticationGuard, BaseGoService, Browser, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CheckIconComponent, ClientApps, CompanyComponent, ComponentBase, ContactUsDialog, ContactUsForm, Convert, Copy2ClipboardComponent, CoreApiService, CountryDropdownlist, DOM, DataPagerComponent, DateConvert, DefaultEditorOptions, DialogBase, DigitalMarketingService, EditComponentBase, EditPageBase, EmailsApiService, EnumEditComponentBase, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, GlobalErrorHandler, GoogleAnalyticsService, GridEditServiceBase, GridReadServiceBase, Guid, HoveringDirective, HtmlEditorComponent, HtmlEditorComponentBase, IdleService, InjectorInstance, IsDevMode, IsProdMode, ItemValidationSummaryComponent, L10NUrl, L10nUtils, ListBase, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, MSALUtils, NativeElementDirective, NodataComponent, NotificationService, PageBase, PageSpinnerComponent, PagedPageBase, PayPalComponent, PayPalScriptService, QSUtils, ReplaceTextPipe, SafeHtmlPipe, ScriptService, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, StarterGuard, StarterService, Stopwatch, Subs, SubscribePlanButtonComponent, TimezoneDropdownlist, UrlSlugComponent, Utils, ValidationSummaryComponent, XmlFormatter, dateFormats, dateTimeFormats, getAppSettingsById, getAppSettingsByName, is, localizationInitializerFactory, throwIfAlreadyLoaded, timeFormats, translateLoaderFactory };
9235
+ export { AddressComponent, AdminGuard, Alerts, AnatolyBillingModule, AnatolyCoreModule, AnatolyDataModule, AnatolyHttpInterceptor, AnatolyIAMModule, AnatolyIAMPagesModule, AnatolyModule, AnatolyUIModule, ApiServiceBase, ApiUrl, AppContextService, AppCoreSettings, AppName, AppSettings, AppVersion, AuthService, AuthenticationGuard, BaseGoService, BraintreeDialog, Browser, BuyAccessButtonComponent, CardBodyComponent, CardComponent, CardFooterComponent, CardHeaderComponent, CheckIconComponent, ClientApps, CompanyComponent, ComponentBase, ContactUsDialog, ContactUsForm, Convert, Copy2ClipboardComponent, CoreApiService, CountryDropdownlist, DOM, DataPagerComponent, DataViewType, DateConvert, DefaultEditorOptions, DialogBase, DigitalMarketingService, DiscountCodeStatus, DiscountCodeType, EditComponentBase, EditPageBase, EmailsApiService, EnumEditComponentBase, FileSizePipe, FormValidationSummaryComponent, FormsHtmlEditorComponent, GlobalErrorHandler, GoogleAnalyticsService, GridEditServiceBase, GridReadServiceBase, Guid, HoveringDirective, HtmlEditorComponent, HtmlEditorComponentBase, IdleService, InjectorInstance, IsDevMode, IsProdMode, ItemValidationSummaryComponent, L10NUrl, L10nUtils, ListBase, LoadingComponent, LoadingService, LocalStorageService, LocalizationInjectorInstance, LocalizationModule, LocalizationService, LocalizationSettingsModule, LocalizePipe, LoggingService, MSALUtils, NativeElementDirective, NodataComponent, NotificationService, PageBase, PageSpinnerComponent, PagedPageBase, PayPalComponent, PayPalScriptService, PaymentMethod, PaymentStage, PaymentType, PaymentsService, PaypalButtonComponent, QSUtils, ReplaceTextPipe, SafeHtmlPipe, ScriptService, SessionStorageService, SignInButtonComponent, SignOutButtonComponent, SignUpButtonComponent, StarterGuard, StarterService, Stopwatch, StripeDialog, Subs, SubscribePlanButtonComponent, TimezoneDropdownlist, UrlSlugComponent, Utils, ValidationSummaryComponent, XmlFormatter, dateFormats, dateTimeFormats, getAppSettingsById, getAppSettingsByName, is, localizationInitializerFactory, throwIfAlreadyLoaded, timeFormats, translateLoaderFactory };
8453
9236
  //# sourceMappingURL=osovitny-anatoly.mjs.map