@osovitny/anatoly 3.17.76 → 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 (201) 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 +3 -3
  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 +1653 -873
  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/exports.d.ts +30 -0
  166. package/lib/ui/components/index.d.ts +2 -30
  167. package/lib/ui/dialogs/exports.d.ts +1 -0
  168. package/lib/ui/dialogs/index.d.ts +2 -1
  169. package/lib/ui/directives/exports.d.ts +2 -0
  170. package/lib/ui/directives/index.d.ts +2 -2
  171. package/lib/ui/exports.d.ts +6 -0
  172. package/lib/ui/forms/components/address/address.component.d.ts +2 -2
  173. package/lib/ui/forms/components/company/company.component.d.ts +1 -1
  174. package/lib/ui/forms/exports.d.ts +3 -0
  175. package/lib/ui/forms/index.d.ts +2 -3
  176. package/lib/ui/pipes/exports.d.ts +3 -0
  177. package/lib/ui/pipes/index.d.ts +2 -3
  178. package/lib/ui/ui.module.d.ts +21 -21
  179. package/lib/ui/validation/exports.d.ts +3 -0
  180. package/lib/ui/validation/index.d.ts +2 -3
  181. package/package.json +4 -2
  182. package/public-api.d.ts +6 -11
  183. package/esm2022/lib/core/index.mjs +0 -59
  184. package/esm2022/lib/data/index.mjs +0 -23
  185. package/esm2022/lib/data/urls.mjs +0 -22
  186. package/esm2022/lib/iam/index.mjs +0 -22
  187. package/esm2022/lib/payments/PayPal/components/paypal.component.mjs +0 -317
  188. package/esm2022/lib/payments/PayPal/models/paypal-models.mjs +0 -17
  189. package/esm2022/lib/payments/PayPal/services/paypal-script.service.mjs +0 -98
  190. package/esm2022/lib/payments/index.mjs +0 -22
  191. package/esm2022/lib/payments/payments.module.mjs +0 -54
  192. package/esm2022/lib/payments/services/script.service.mjs +0 -63
  193. package/esm2022/lib/ui/external/fa.module.mjs +0 -46
  194. package/esm2022/lib/ui/external/kendo.module.mjs +0 -91
  195. package/lib/data/urls.d.ts +0 -4
  196. package/lib/payments/index.d.ts +0 -4
  197. package/lib/payments/payments.module.d.ts +0 -8
  198. /package/lib/data/{index.d.ts → exports.d.ts} +0 -0
  199. /package/lib/{ui/external → external}/fa.module.d.ts +0 -0
  200. /package/lib/{ui/external → external}/kendo.module.d.ts +0 -0
  201. /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;
3687
- }
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);
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;
4146
+ }
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));
4214
5042
  }
4215
- dataStartedLoading() {
4216
- this.dataLoading = true;
4217
- this.dataLoaded = false;
4218
- this.dataFound = false;
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`;
4219
5071
  }
4220
- dataLoadedAndNothingFound() {
4221
- this.dataLoadedAndFound(false);
5072
+ getTimezonesJsonFile() {
5073
+ return this.getExternalJsonFile('anatoly', 'timezones.json');
4222
5074
  }
4223
- dataLoadedAndFound(found = true) {
4224
- this.dataLoading = false;
4225
- this.dataLoaded = true;
4226
- this.dataFound = found;
5075
+ getCountriesJsonFile() {
5076
+ return this.getExternalJsonFile('anatoly', 'countries.json');
4227
5077
  }
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 }); }
5078
+ getUSStatesJsonFile() {
5079
+ return this.getExternalJsonFile('anatoly', 'usStates.json');
5080
+ }
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
@@ -4558,96 +5319,29 @@ class PagedPageBase extends PageBase {
4558
5319
  }
4559
5320
  setFilter(filter) {
4560
5321
  this.currentFilter = filter;
4561
- this.loadPageOne();
4562
- }
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
- //Private
4617
- this._isOpen = false;
4618
- //Public
4619
- this.themeColor = "primary";
4620
- //Events
4621
- this.opened = new EventEmitter();
4622
- this.closed = new EventEmitter();
4623
- }
4624
- open() {
4625
- this.isOpen = true;
4626
- }
4627
- close(returnValue = "OK") {
4628
- this.isOpen = false;
4629
- this.closed.emit(returnValue);
5322
+ this.loadPageOne();
4630
5323
  }
4631
- cancel() {
4632
- this.isOpen = false;
4633
- this.closed.emit(-1);
5324
+ //Tos
5325
+ toIndex(index) {
5326
+ return ((this.currentPage - 1) * this.pageSize) + index + 1;
4634
5327
  }
4635
- static { this.ɵfac = function DialogBase_Factory(t) { return new (t || DialogBase)(); }; }
4636
- 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 }); }
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();
5334
+ }
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 }); }
4637
5337
  }
4638
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DialogBase, [{
5338
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PagedPageBase, [{
4639
5339
  type: Component,
4640
5340
  args: [{
4641
5341
  template: ''
4642
5342
  }]
4643
- }], () => [], { isOpen: [{
4644
- type: Input
4645
- }], opened: [{
4646
- type: Output
4647
- }], closed: [{
4648
- type: Output
4649
- }] }); })();
4650
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(DialogBase, { className: "DialogBase", filePath: "lib\\ui\\components\\base\\dialog.ts", lineNumber: 27 }); })();
5343
+ }], null, null); })();
5344
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PagedPageBase, { className: "PagedPageBase", filePath: "lib\\ui\\components\\base\\pages\\paged.page.ts", lineNumber: 26 }); })();
4651
5345
 
4652
5346
  /*
4653
5347
  <file>
@@ -4655,8 +5349,8 @@ class DialogBase extends EditComponentBase {
4655
5349
  @osovitny/anatoly
4656
5350
 
4657
5351
  Authors:
4658
- Vadim Osovitny vadim@osovitny.com
4659
- Anatoly Osovitny anatoly@osovitny.com
5352
+ Vadim Osovitny vadim.osovitny@osovitny.com
5353
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4660
5354
 
4661
5355
  Created:
4662
5356
  20 Aug 2022
@@ -4751,8 +5445,8 @@ class ListBase extends ComponentBase {
4751
5445
  @osovitny/anatoly
4752
5446
 
4753
5447
  Authors:
4754
- Vadim Osovitny vadim@osovitny.com
4755
- Anatoly Osovitny anatoly@osovitny.com
5448
+ Vadim Osovitny vadim.osovitny@osovitny.com
5449
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4756
5450
 
4757
5451
  Created:
4758
5452
  4 Jul 2018
@@ -4848,8 +5542,8 @@ class SignUpButtonComponent extends ComponentBase {
4848
5542
  @osovitny/anatoly
4849
5543
 
4850
5544
  Authors:
4851
- Vadim Osovitny vadim@osovitny.com
4852
- Anatoly Osovitny anatoly@osovitny.com
5545
+ Vadim Osovitny vadim.osovitny@osovitny.com
5546
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4853
5547
 
4854
5548
  Created:
4855
5549
  14 Aug 2018
@@ -4951,8 +5645,8 @@ class BuyAccessButtonComponent {
4951
5645
  @osovitny/anatoly
4952
5646
 
4953
5647
  Authors:
4954
- Vadim Osovitny vadim@osovitny.com
4955
- Anatoly Osovitny anatoly@osovitny.com
5648
+ Vadim Osovitny vadim.osovitny@osovitny.com
5649
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
4956
5650
 
4957
5651
  Created:
4958
5652
  1 Jun 2018
@@ -5065,8 +5759,8 @@ class SubscribePlanButtonComponent {
5065
5759
  @osovitny/anatoly
5066
5760
 
5067
5761
  Authors:
5068
- Vadim Osovitny vadim@osovitny.com
5069
- Anatoly Osovitny anatoly@osovitny.com
5762
+ Vadim Osovitny vadim.osovitny@osovitny.com
5763
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5070
5764
 
5071
5765
  Created:
5072
5766
  15 Aug 2022
@@ -5104,8 +5798,8 @@ class CheckIconComponent {
5104
5798
  @osovitny/anatoly
5105
5799
 
5106
5800
  Authors:
5107
- Vadim Osovitny vadim@osovitny.com
5108
- Anatoly Osovitny anatoly@osovitny.com
5801
+ Vadim Osovitny vadim.osovitny@osovitny.com
5802
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5109
5803
 
5110
5804
  Created:
5111
5805
  28 Aug 2022
@@ -5194,8 +5888,8 @@ class DataPagerComponent extends ComponentBase {
5194
5888
  @osovitny/anatoly
5195
5889
 
5196
5890
  Authors:
5197
- Vadim Osovitny vadim@osovitny.com
5198
- Anatoly Osovitny anatoly@osovitny.com
5891
+ Vadim Osovitny vadim.osovitny@osovitny.com
5892
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5199
5893
 
5200
5894
  Created:
5201
5895
  4 Jul 2018
@@ -5291,8 +5985,8 @@ class SignInButtonComponent extends ComponentBase {
5291
5985
  @osovitny/anatoly
5292
5986
 
5293
5987
  Authors:
5294
- Vadim Osovitny vadim@osovitny.com
5295
- Anatoly Osovitny anatoly@osovitny.com
5988
+ Vadim Osovitny vadim.osovitny@osovitny.com
5989
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5296
5990
 
5297
5991
  Created:
5298
5992
  4 Jul 2018
@@ -5388,8 +6082,8 @@ class SignOutButtonComponent extends ComponentBase {
5388
6082
  @osovitny/anatoly
5389
6083
 
5390
6084
  Authors:
5391
- Vadim Osovitny vadim@osovitny.com
5392
- Anatoly Osovitny anatoly@osovitny.com
6085
+ Vadim Osovitny vadim.osovitny@osovitny.com
6086
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5393
6087
 
5394
6088
  Created:
5395
6089
  29 Jul 2022
@@ -5463,8 +6157,8 @@ class NodataComponent {
5463
6157
  @osovitny/anatoly
5464
6158
 
5465
6159
  Authors:
5466
- Vadim Osovitny vadim@osovitny.com
5467
- Anatoly Osovitny anatoly@osovitny.com
6160
+ Vadim Osovitny vadim.osovitny@osovitny.com
6161
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5468
6162
 
5469
6163
  Created:
5470
6164
  9 May 2020
@@ -5522,8 +6216,8 @@ const Spinkit = {
5522
6216
  @osovitny/anatoly
5523
6217
 
5524
6218
  Authors:
5525
- Vadim Osovitny vadim@osovitny.com
5526
- Anatoly Osovitny anatoly@osovitny.com
6219
+ Vadim Osovitny vadim.osovitny@osovitny.com
6220
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5527
6221
 
5528
6222
  Created:
5529
6223
  16 May 2020
@@ -5600,8 +6294,8 @@ class PageSpinnerComponent {
5600
6294
  @osovitny/anatoly
5601
6295
 
5602
6296
  Authors:
5603
- Vadim Osovitny vadim@osovitny.com
5604
- Anatoly Osovitny anatoly@osovitny.com
6297
+ Vadim Osovitny vadim.osovitny@osovitny.com
6298
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5605
6299
 
5606
6300
  Created:
5607
6301
  9 Jun 2020
@@ -5647,8 +6341,8 @@ class Copy2ClipboardComponent {
5647
6341
  @osovitny/anatoly
5648
6342
 
5649
6343
  Authors:
5650
- Vadim Osovitny vadim@osovitny.com
5651
- Anatoly Osovitny anatoly@osovitny.com
6344
+ Vadim Osovitny vadim.osovitny@osovitny.com
6345
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5652
6346
 
5653
6347
  Created:
5654
6348
  28 Jun 2020
@@ -5666,7 +6360,7 @@ class NativeElementDirective {
5666
6360
  // sets the localization key to the control
5667
6361
  this.control.control.nativeElement = this.el.nativeElement;
5668
6362
  }
5669
- 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)); }; }
5670
6364
  static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: NativeElementDirective, selectors: [["", "formControl", ""], ["", "formControlName", ""]] }); }
5671
6365
  }
5672
6366
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NativeElementDirective, [{
@@ -5674,7 +6368,7 @@ class NativeElementDirective {
5674
6368
  args: [{
5675
6369
  selector: '[formControl], [formControlName]'
5676
6370
  }]
5677
- }], () => [{ type: i0.ElementRef }, { type: i2.NgControl }], null); })();
6371
+ }], () => [{ type: i0.ElementRef }, { type: i2$1.NgControl }], null); })();
5678
6372
 
5679
6373
  /*
5680
6374
  <file>
@@ -5682,8 +6376,8 @@ class NativeElementDirective {
5682
6376
  @osovitny/anatoly
5683
6377
 
5684
6378
  Authors:
5685
- Vadim Osovitny vadim@osovitny.com
5686
- Anatoly Osovitny anatoly@osovitny.com
6379
+ Vadim Osovitny vadim.osovitny@osovitny.com
6380
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5687
6381
 
5688
6382
  Created:
5689
6383
  8 Dec 2017
@@ -5802,8 +6496,8 @@ class ValidationSummaryComponent extends EditComponentBase {
5802
6496
  @osovitny/anatoly
5803
6497
 
5804
6498
  Authors:
5805
- Vadim Osovitny vadim@osovitny.com
5806
- Anatoly Osovitny anatoly@osovitny.com
6499
+ Vadim Osovitny vadim.osovitny@osovitny.com
6500
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5807
6501
 
5808
6502
  Created:
5809
6503
  6 Dec 2017
@@ -5850,8 +6544,8 @@ class ItemValidationSummaryComponent extends ValidationSummaryComponent {
5850
6544
  @osovitny/anatoly
5851
6545
 
5852
6546
  Authors:
5853
- Vadim Osovitny vadim@osovitny.com
5854
- Anatoly Osovitny anatoly@osovitny.com
6547
+ Vadim Osovitny vadim.osovitny@osovitny.com
6548
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5855
6549
 
5856
6550
  Created:
5857
6551
  02 Aug 2022
@@ -5947,7 +6641,7 @@ class UrlSlugComponent extends EditComponentBase {
5947
6641
  i0.ɵɵproperty("formControlName", ctx.controlName);
5948
6642
  i0.ɵɵadvance();
5949
6643
  i0.ɵɵproperty("ngIf", ctx.isGoButtonVisible);
5950
- } }, 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 }); }
5951
6645
  }
5952
6646
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UrlSlugComponent, [{
5953
6647
  type: Component,
@@ -5969,8 +6663,8 @@ class UrlSlugComponent extends EditComponentBase {
5969
6663
  @osovitny/anatoly
5970
6664
 
5971
6665
  Authors:
5972
- Vadim Osovitny vadim@osovitny.com
5973
- Anatoly Osovitny anatoly@osovitny.com
6666
+ Vadim Osovitny vadim.osovitny@osovitny.com
6667
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
5974
6668
 
5975
6669
  Created:
5976
6670
  2 Feb 2024
@@ -6041,7 +6735,7 @@ class CountryDropdownlist extends EditComponentBase {
6041
6735
  i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6042
6736
  i0.ɵɵadvance();
6043
6737
  i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6044
- } }, 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 }); }
6045
6739
  }
6046
6740
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CountryDropdownlist, [{
6047
6741
  type: Component,
@@ -6055,8 +6749,8 @@ class CountryDropdownlist extends EditComponentBase {
6055
6749
  @osovitny/anatoly
6056
6750
 
6057
6751
  Authors:
6058
- Vadim Osovitny vadim@osovitny.com
6059
- Anatoly Osovitny anatoly@osovitny.com
6752
+ Vadim Osovitny vadim.osovitny@osovitny.com
6753
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6060
6754
 
6061
6755
  Created:
6062
6756
  02 Aug 2022
@@ -6144,7 +6838,7 @@ class TimezoneDropdownlist extends EditComponentBase {
6144
6838
  i0.ɵɵproperty("ngIf", ctx.isNgModelBased);
6145
6839
  i0.ɵɵadvance();
6146
6840
  i0.ɵɵproperty("ngIf", !ctx.isNgModelBased);
6147
- } }, 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 }); }
6148
6842
  }
6149
6843
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TimezoneDropdownlist, [{
6150
6844
  type: Component,
@@ -6158,8 +6852,7 @@ class TimezoneDropdownlist extends EditComponentBase {
6158
6852
  @osovitny/anatoly
6159
6853
 
6160
6854
  Authors:
6161
- Vadim Osovitny vadim@osovitny.com
6162
- Anatoly Osovitny anatoly@osovitny.com
6855
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6163
6856
 
6164
6857
  Created:
6165
6858
  29 July 2022
@@ -6188,7 +6881,7 @@ class CardComponent extends ComponentBase {
6188
6881
  type: Component,
6189
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" }]
6190
6883
  }], null, null); })();
6191
- (() => { (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 }); })();
6192
6885
 
6193
6886
  /*
6194
6887
  <file>
@@ -6196,8 +6889,7 @@ class CardComponent extends ComponentBase {
6196
6889
  @osovitny/anatoly
6197
6890
 
6198
6891
  Authors:
6199
- Vadim Osovitny vadim@osovitny.com
6200
- Anatoly Osovitny anatoly@osovitny.com
6892
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6201
6893
 
6202
6894
  Created:
6203
6895
  29 July 2022
@@ -6234,7 +6926,7 @@ class CardHeaderComponent extends ComponentBase {
6234
6926
  type: Component,
6235
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" }]
6236
6928
  }], null, null); })();
6237
- (() => { (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 }); })();
6238
6930
 
6239
6931
  /*
6240
6932
  <file>
@@ -6242,8 +6934,7 @@ class CardHeaderComponent extends ComponentBase {
6242
6934
  @osovitny/anatoly
6243
6935
 
6244
6936
  Authors:
6245
- Vadim Osovitny vadim@osovitny.com
6246
- Anatoly Osovitny anatoly@osovitny.com
6937
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6247
6938
 
6248
6939
  Created:
6249
6940
  29 July 2022
@@ -6268,7 +6959,7 @@ class CardBodyComponent extends ComponentBase {
6268
6959
  type: Component,
6269
6960
  args: [{ selector: 'anatoly-card-body', template: "<div class='card-body {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6270
6961
  }], null, null); })();
6271
- (() => { (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 }); })();
6272
6963
 
6273
6964
  /*
6274
6965
  <file>
@@ -6276,8 +6967,7 @@ class CardBodyComponent extends ComponentBase {
6276
6967
  @osovitny/anatoly
6277
6968
 
6278
6969
  Authors:
6279
- Vadim Osovitny vadim@osovitny.com
6280
- Anatoly Osovitny anatoly@osovitny.com
6970
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6281
6971
 
6282
6972
  Created:
6283
6973
  29 July 2022
@@ -6302,7 +6992,7 @@ class CardFooterComponent extends ComponentBase {
6302
6992
  type: Component,
6303
6993
  args: [{ selector: 'anatoly-card-footer', template: "<div class='card-footer {{ classes }}'>\r\n <ng-content></ng-content>\r\n</div>\r\n" }]
6304
6994
  }], null, null); })();
6305
- (() => { (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 }); })();
6306
6996
 
6307
6997
  /*
6308
6998
  <file>
@@ -6310,8 +7000,8 @@ class CardFooterComponent extends ComponentBase {
6310
7000
  @osovitny/anatoly
6311
7001
 
6312
7002
  Authors:
6313
- Vadim Osovitny vadim@osovitny.com
6314
- Anatoly Osovitny anatoly@osovitny.com
7003
+ Vadim Osovitny vadim.osovitny@osovitny.com
7004
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6315
7005
 
6316
7006
  Created:
6317
7007
  12 Dec 2017
@@ -6484,8 +7174,8 @@ class HtmlEditorComponentBase extends EditComponentBase {
6484
7174
  @osovitny/anatoly
6485
7175
 
6486
7176
  Authors:
6487
- Vadim Osovitny vadim@osovitny.com
6488
- Anatoly Osovitny anatoly@osovitny.com
7177
+ Vadim Osovitny vadim.osovitny@osovitny.com
7178
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6489
7179
 
6490
7180
  Created:
6491
7181
  12 Dec 2017
@@ -6523,7 +7213,7 @@ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
6523
7213
  i0.ɵɵproperty("formControlName", ctx.editorFormKey)("froalaEditor", ctx.options);
6524
7214
  i0.ɵɵadvance();
6525
7215
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted)("controlName", ctx.editorFormKey);
6526
- } }, 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 }); }
6527
7217
  }
6528
7218
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FormsHtmlEditorComponent, [{
6529
7219
  type: Component,
@@ -6539,8 +7229,8 @@ class FormsHtmlEditorComponent extends HtmlEditorComponentBase {
6539
7229
  @osovitny/anatoly
6540
7230
 
6541
7231
  Authors:
6542
- Vadim Osovitny vadim@osovitny.com
6543
- Anatoly Osovitny anatoly@osovitny.com
7232
+ Vadim Osovitny vadim.osovitny@osovitny.com
7233
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6544
7234
 
6545
7235
  Created:
6546
7236
  12 Dec 2017
@@ -6596,8 +7286,8 @@ class HtmlEditorComponent extends HtmlEditorComponentBase {
6596
7286
  @osovitny/anatoly
6597
7287
 
6598
7288
  Authors:
6599
- Vadim Osovitny vadim@osovitny.com
6600
- Anatoly Osovitny anatoly@osovitny.com
7289
+ Vadim Osovitny vadim.osovitny@osovitny.com
7290
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6601
7291
 
6602
7292
  Created:
6603
7293
  2 Aug 2022
@@ -6613,8 +7303,8 @@ class HtmlEditorComponent extends HtmlEditorComponentBase {
6613
7303
  @osovitny/anatoly
6614
7304
 
6615
7305
  Authors:
6616
- Vadim Osovitny vadim@osovitny.com
6617
- Anatoly Osovitny anatoly@osovitny.com
7306
+ Vadim Osovitny vadim.osovitny@osovitny.com
7307
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6618
7308
 
6619
7309
  Created:
6620
7310
  7 Dec 2017
@@ -6698,8 +7388,8 @@ class FormValidationSummaryComponent extends ValidationSummaryComponent {
6698
7388
  @osovitny/anatoly
6699
7389
 
6700
7390
  Authors:
6701
- Vadim Osovitny vadim@osovitny.com
6702
- Anatoly Osovitny anatoly@osovitny.com
7391
+ Vadim Osovitny vadim.osovitny@osovitny.com
7392
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6703
7393
 
6704
7394
  Created:
6705
7395
  02 Aug 2022
@@ -6808,7 +7498,7 @@ class ContactUsForm extends EditComponentBase {
6808
7498
  onTopicChange(event) {
6809
7499
  this.selectedTopic = event.target.value;
6810
7500
  }
6811
- 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)); }; }
6812
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) {
6813
7503
  i0.ɵɵelementStart(0, "form", 0);
6814
7504
  i0.ɵɵlistener("ngSubmit", function ContactUsForm_Template_form_ngSubmit_0_listener() { return ctx.onSubmit(); });
@@ -6880,12 +7570,12 @@ class ContactUsForm extends EditComponentBase {
6880
7570
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
6881
7571
  i0.ɵɵadvance(3);
6882
7572
  i0.ɵɵproperty("ngIf", ctx.showActionButtons);
6883
- } }, 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 }); }
6884
7574
  }
6885
7575
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactUsForm, [{
6886
7576
  type: Component,
6887
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" }]
6888
- }], () => [{ 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: [{
6889
7579
  type: Input
6890
7580
  }], submit: [{
6891
7581
  type: Output
@@ -6898,8 +7588,8 @@ class ContactUsForm extends EditComponentBase {
6898
7588
  @osovitny/anatoly
6899
7589
 
6900
7590
  Authors:
6901
- Vadim Osovitny vadim@osovitny.com
6902
- Anatoly Osovitny anatoly@osovitny.com
7591
+ Vadim Osovitny vadim.osovitny@osovitny.com
7592
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6903
7593
 
6904
7594
  Created:
6905
7595
  16 July 2022
@@ -6953,7 +7643,7 @@ class ContactUsDialog extends DialogBase {
6953
7643
  i0.ɵɵtemplate(0, ContactUsDialog_kendo_dialog_0_Template, 10, 2, "kendo-dialog", 0);
6954
7644
  } if (rf & 2) {
6955
7645
  i0.ɵɵproperty("ngIf", ctx.isOpen);
6956
- } }, 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 }); }
6957
7647
  }
6958
7648
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(ContactUsDialog, [{
6959
7649
  type: Component,
@@ -6970,8 +7660,8 @@ class ContactUsDialog extends DialogBase {
6970
7660
  @osovitny/anatoly
6971
7661
 
6972
7662
  Authors:
6973
- Vadim Osovitny vadim@osovitny.com
6974
- Anatoly Osovitny anatoly@osovitny.com
7663
+ Vadim Osovitny vadim.osovitny@osovitny.com
7664
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6975
7665
 
6976
7666
  Created:
6977
7667
  2 Aug 2022
@@ -6986,8 +7676,8 @@ class ContactUsDialog extends DialogBase {
6986
7676
  @osovitny/anatoly
6987
7677
 
6988
7678
  Authors:
6989
- Vadim Osovitny vadim@osovitny.com
6990
- Anatoly Osovitny anatoly@osovitny.com
7679
+ Vadim Osovitny vadim.osovitny@osovitny.com
7680
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
6991
7681
 
6992
7682
  Created:
6993
7683
  24 Feb 2023
@@ -7035,8 +7725,8 @@ class HoveringDirective {
7035
7725
  @osovitny/anatoly
7036
7726
 
7037
7727
  Authors:
7038
- Vadim Osovitny vadim@osovitny.com
7039
- Anatoly Osovitny anatoly@osovitny.com
7728
+ Vadim Osovitny vadim.osovitny@osovitny.com
7729
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7040
7730
 
7041
7731
  Created:
7042
7732
  2 Aug 2022
@@ -7051,8 +7741,8 @@ class HoveringDirective {
7051
7741
  @osovitny/anatoly
7052
7742
 
7053
7743
  Authors:
7054
- Vadim Osovitny vadim@osovitny.com
7055
- Anatoly Osovitny anatoly@osovitny.com
7744
+ Vadim Osovitny vadim.osovitny@osovitny.com
7745
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7056
7746
 
7057
7747
  Created:
7058
7748
  02 Aug 2022
@@ -7199,7 +7889,7 @@ class AddressComponent extends EditComponentBase {
7199
7889
  let usState = event.target.value;
7200
7890
  this.change.emit(usState);
7201
7891
  }
7202
- 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)); }; }
7203
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) {
7204
7894
  i0.ɵɵelementStart(0, "anatoly-card", 0);
7205
7895
  i0.ɵɵtemplate(1, AddressComponent_anatoly_card_header_1_Template, 1, 1, "anatoly-card-header", 1);
@@ -7260,12 +7950,12 @@ class AddressComponent extends EditComponentBase {
7260
7950
  i0.ɵɵproperty("ngForOf", ctx.countryData);
7261
7951
  i0.ɵɵadvance();
7262
7952
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
7263
- } }, 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 }); }
7264
7954
  }
7265
7955
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddressComponent, [{
7266
7956
  type: Component,
7267
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" }]
7268
- }], () => [{ type: i2.FormBuilder }, { type: CoreApiService }], { address: [{
7958
+ }], () => [{ type: i2$1.FormBuilder }, { type: CoreApiService }], { address: [{
7269
7959
  type: Input
7270
7960
  }], change: [{
7271
7961
  type: Output
@@ -7278,8 +7968,8 @@ class AddressComponent extends EditComponentBase {
7278
7968
  @osovitny/anatoly
7279
7969
 
7280
7970
  Authors:
7281
- Vadim Osovitny vadim@osovitny.com
7282
- Anatoly Osovitny anatoly@osovitny.com
7971
+ Vadim Osovitny vadim.osovitny@osovitny.com
7972
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7283
7973
 
7284
7974
  Created:
7285
7975
  02 Aug 2022
@@ -7344,7 +8034,7 @@ class CompanyComponent extends EditComponentBase {
7344
8034
  };
7345
8035
  return JSON.stringify(data);
7346
8036
  }
7347
- 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)); }; }
7348
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) {
7349
8039
  i0.ɵɵelementStart(0, "anatoly-card", 0);
7350
8040
  i0.ɵɵtemplate(1, CompanyComponent_anatoly_card_header_1_Template, 1, 1, "anatoly-card-header", 1);
@@ -7389,12 +8079,12 @@ class CompanyComponent extends EditComponentBase {
7389
8079
  i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(20, _c0, ctx.isControlInvalid("company_websiteUrl")));
7390
8080
  i0.ɵɵadvance(4);
7391
8081
  i0.ɵɵproperty("formGroup", ctx.formGroup)("formSubmitted", ctx.formSubmitted);
7392
- } }, 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 }); }
7393
8083
  }
7394
8084
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CompanyComponent, [{
7395
8085
  type: Component,
7396
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" }]
7397
- }], () => [{ type: i2.FormBuilder }], { company: [{
8087
+ }], () => [{ type: i2$1.FormBuilder }], { company: [{
7398
8088
  type: Input
7399
8089
  }] }); })();
7400
8090
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CompanyComponent, { className: "CompanyComponent", filePath: "lib\\ui\\forms\\components\\company\\company.component.ts", lineNumber: 28 }); })();
@@ -7405,8 +8095,8 @@ class CompanyComponent extends EditComponentBase {
7405
8095
  @osovitny/anatoly
7406
8096
 
7407
8097
  Authors:
7408
- Vadim Osovitny vadim@osovitny.com
7409
- Anatoly Osovitny anatoly@osovitny.com
8098
+ Vadim Osovitny vadim.osovitny@osovitny.com
8099
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7410
8100
 
7411
8101
  Created:
7412
8102
  2 Aug 2022
@@ -7422,8 +8112,8 @@ class CompanyComponent extends EditComponentBase {
7422
8112
  @osovitny/anatoly
7423
8113
 
7424
8114
  Authors:
7425
- Vadim Osovitny vadim@osovitny.com
7426
- Anatoly Osovitny anatoly@osovitny.com
8115
+ Vadim Osovitny vadim.osovitny@osovitny.com
8116
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7427
8117
 
7428
8118
  Created:
7429
8119
  26 Jun 2020
@@ -7462,8 +8152,8 @@ class FileSizePipe {
7462
8152
  @osovitny/anatoly
7463
8153
 
7464
8154
  Authors:
7465
- Vadim Osovitny vadim@osovitny.com
7466
- Anatoly Osovitny anatoly@osovitny.com
8155
+ Vadim Osovitny vadim.osovitny@osovitny.com
8156
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7467
8157
 
7468
8158
  Created:
7469
8159
  26 Jun 2020
@@ -7497,8 +8187,8 @@ class ReplaceTextPipe {
7497
8187
  @osovitny/anatoly
7498
8188
 
7499
8189
  Authors:
7500
- Vadim Osovitny vadim@osovitny.com
7501
- Anatoly Osovitny anatoly@osovitny.com
8190
+ Vadim Osovitny vadim.osovitny@osovitny.com
8191
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7502
8192
 
7503
8193
  Created:
7504
8194
  27 Oct 2019
@@ -7528,8 +8218,8 @@ class SafeHtmlPipe {
7528
8218
  @osovitny/anatoly
7529
8219
 
7530
8220
  Authors:
7531
- Vadim Osovitny vadim@osovitny.com
7532
- Anatoly Osovitny anatoly@osovitny.com
8221
+ Vadim Osovitny vadim.osovitny@osovitny.com
8222
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7533
8223
 
7534
8224
  Created:
7535
8225
  2 Aug 2022
@@ -7544,8 +8234,8 @@ class SafeHtmlPipe {
7544
8234
  @osovitny/anatoly
7545
8235
 
7546
8236
  Authors:
7547
- Vadim Osovitny vadim@osovitny.com
7548
- Anatoly Osovitny anatoly@osovitny.com
8237
+ Vadim Osovitny vadim.osovitny@osovitny.com
8238
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7549
8239
 
7550
8240
  Created:
7551
8241
  2 Aug 2022
@@ -7560,8 +8250,24 @@ class SafeHtmlPipe {
7560
8250
  @osovitny/anatoly
7561
8251
 
7562
8252
  Authors:
7563
- Vadim Osovitny vadim@osovitny.com
7564
- 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
7565
8271
 
7566
8272
  Created:
7567
8273
  29 June 2020
@@ -7585,10 +8291,13 @@ class AnatolyCoreModule {
7585
8291
  DigitalMarketingService,
7586
8292
  GoogleAnalyticsService,
7587
8293
  LoadingService,
8294
+ ScriptService,
7588
8295
  StarterService,
7589
8296
  LocalStorageService,
7590
8297
  SessionStorageService,
8298
+ //Logging
7591
8299
  LoggingService,
8300
+ //Notifications
7592
8301
  NotificationService
7593
8302
  ], imports: [CommonModule,
7594
8303
  RouterModule,
@@ -7620,10 +8329,13 @@ class AnatolyCoreModule {
7620
8329
  DigitalMarketingService,
7621
8330
  GoogleAnalyticsService,
7622
8331
  LoadingService,
8332
+ ScriptService,
7623
8333
  StarterService,
7624
8334
  LocalStorageService,
7625
8335
  SessionStorageService,
8336
+ //Logging
7626
8337
  LoggingService,
8338
+ //Notifications
7627
8339
  NotificationService
7628
8340
  ]
7629
8341
  }]
@@ -7644,8 +8356,7 @@ class AnatolyCoreModule {
7644
8356
  @osovitny/anatoly
7645
8357
 
7646
8358
  Authors:
7647
- Vadim Osovitny vadim@osovitny.com
7648
- Anatoly Osovitny anatoly@osovitny.com
8359
+ Vadim Osovitny vadim.osovitny@osovitny.com
7649
8360
 
7650
8361
  Created:
7651
8362
  4 Mar 2020
@@ -7658,6 +8369,9 @@ class AnatolyDataModule {
7658
8369
  static { this.ɵfac = function AnatolyDataModule_Factory(t) { return new (t || AnatolyDataModule)(); }; }
7659
8370
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyDataModule }); }
7660
8371
  static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
8372
+ //Billing
8373
+ PaymentsApiService,
8374
+ //App
7661
8375
  CoreApiService,
7662
8376
  EmailsApiService
7663
8377
  ], imports: [CommonModule] }); }
@@ -7669,6 +8383,9 @@ class AnatolyDataModule {
7669
8383
  CommonModule
7670
8384
  ],
7671
8385
  providers: [
8386
+ //Billing
8387
+ PaymentsApiService,
8388
+ //App
7672
8389
  CoreApiService,
7673
8390
  EmailsApiService
7674
8391
  ]
@@ -7682,8 +8399,8 @@ class AnatolyDataModule {
7682
8399
  @osovitny/anatoly
7683
8400
 
7684
8401
  Authors:
7685
- Vadim Osovitny vadim@osovitny.com
7686
- Anatoly Osovitny anatoly@osovitny.com
8402
+ Vadim Osovitny vadim.osovitny@osovitny.com
8403
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7687
8404
 
7688
8405
  Created:
7689
8406
  2 May 2023
@@ -7786,8 +8503,8 @@ function loggerCallback(logLevel, message, containsPii) {
7786
8503
  @osovitny/anatoly
7787
8504
 
7788
8505
  Authors:
7789
- Vadim Osovitny vadim@osovitny.com
7790
- Anatoly Osovitny anatoly@osovitny.com
8506
+ Vadim Osovitny vadim.osovitny@osovitny.com
8507
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7791
8508
 
7792
8509
  Created:
7793
8510
  6 Dec 2018
@@ -7860,8 +8577,8 @@ class AnatolyIAMModule {
7860
8577
  @osovitny/anatoly
7861
8578
 
7862
8579
  Authors:
7863
- Vadim Osovitny vadim@osovitny.com
7864
- Anatoly Osovitny anatoly@osovitny.com
8580
+ Vadim Osovitny vadim.osovitny@osovitny.com
8581
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7865
8582
 
7866
8583
  Created:
7867
8584
  20 Sep 2023
@@ -7896,8 +8613,8 @@ class SignInPage extends PageBase {
7896
8613
  @osovitny/anatoly
7897
8614
 
7898
8615
  Authors:
7899
- Vadim Osovitny vadim@osovitny.com
7900
- Anatoly Osovitny anatoly@osovitny.com
8616
+ Vadim Osovitny vadim.osovitny@osovitny.com
8617
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7901
8618
 
7902
8619
  Created:
7903
8620
  20 Sep 2023
@@ -7932,8 +8649,8 @@ class SignOutPage extends PageBase {
7932
8649
  @osovitny/anatoly
7933
8650
 
7934
8651
  Authors:
7935
- Vadim Osovitny vadim@osovitny.com
7936
- Anatoly Osovitny anatoly@osovitny.com
8652
+ Vadim Osovitny vadim.osovitny@osovitny.com
8653
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7937
8654
 
7938
8655
  Created:
7939
8656
  20 Sep 2023
@@ -7968,8 +8685,8 @@ class SignUpPage extends PageBase {
7968
8685
  @osovitny/anatoly
7969
8686
 
7970
8687
  Authors:
7971
- Vadim Osovitny vadim@osovitny.com
7972
- Anatoly Osovitny anatoly@osovitny.com
8688
+ Vadim Osovitny vadim.osovitny@osovitny.com
8689
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
7973
8690
 
7974
8691
  Created:
7975
8692
  2 May 2023
@@ -8008,8 +8725,8 @@ const PAGES = [
8008
8725
  @osovitny/anatoly
8009
8726
 
8010
8727
  Authors:
8011
- Vadim Osovitny vadim@osovitny.com
8012
- Anatoly Osovitny anatoly@osovitny.com
8728
+ Vadim Osovitny vadim.osovitny@osovitny.com
8729
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8013
8730
 
8014
8731
  Created:
8015
8732
  6 Dec 2018
@@ -8054,54 +8771,7 @@ class AnatolyIAMPagesModule {
8054
8771
  @osovitny/anatoly
8055
8772
 
8056
8773
  Authors:
8057
- Vadim Osovitny vadim@osovitny.com
8058
- Anatoly Osovitny anatoly@osovitny.com
8059
-
8060
- Created:
8061
- 14 Jun 2024
8062
-
8063
- Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
8064
- </file>
8065
- */
8066
- //Node
8067
- class AnatolyPaymentsModule {
8068
- static { this.ɵfac = function AnatolyPaymentsModule_Factory(t) { return new (t || AnatolyPaymentsModule)(); }; }
8069
- static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyPaymentsModule }); }
8070
- static { this.ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [
8071
- ScriptService,
8072
- //PayPal
8073
- PayPalScriptService
8074
- ], imports: [CommonModule] }); }
8075
- }
8076
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AnatolyPaymentsModule, [{
8077
- type: NgModule,
8078
- args: [{
8079
- imports: [
8080
- CommonModule
8081
- ],
8082
- declarations: [
8083
- PayPalComponent
8084
- ],
8085
- exports: [
8086
- PayPalComponent
8087
- ],
8088
- providers: [
8089
- ScriptService,
8090
- //PayPal
8091
- PayPalScriptService
8092
- ]
8093
- }]
8094
- }], null, null); })();
8095
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyPaymentsModule, { declarations: [PayPalComponent], imports: [CommonModule], exports: [PayPalComponent] }); })();
8096
-
8097
- /*
8098
- <file>
8099
- Project:
8100
- @osovitny/anatoly
8101
-
8102
- Authors:
8103
- Vadim Osovitny vadim@osovitny.com
8104
- Anatoly Osovitny anatoly@osovitny.com
8774
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8105
8775
 
8106
8776
  Created:
8107
8777
  25 Aug 2022
@@ -8140,8 +8810,7 @@ class FaModule {
8140
8810
  @osovitny/anatoly
8141
8811
 
8142
8812
  Authors:
8143
- Vadim Osovitny vadim@osovitny.com
8144
- Anatoly Osovitny anatoly@osovitny.com
8813
+ Anatoly Osovitny anatoly.osovitny@osovitny.com
8145
8814
 
8146
8815
  Created:
8147
8816
  28 Aug 2022
@@ -8219,57 +8888,245 @@ class KendoModule {
8219
8888
  @osovitny/anatoly
8220
8889
 
8221
8890
  Authors:
8222
- Vadim Osovitny vadim@osovitny.com
8223
- Anatoly Osovitny anatoly@osovitny.com
8891
+ Vadim Osovitny vadim.osovitny@osovitny.com
8224
8892
 
8225
8893
  Created:
8226
- 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
8227
8918
 
8228
8919
  Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
8229
8920
  </file>
8230
8921
  */
8231
8922
  //Node
8232
- 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
8233
8978
  BuyAccessButtonComponent,
8234
8979
  SubscribePlanButtonComponent,
8980
+ //Cards
8981
+ CardComponent,
8982
+ CardHeaderComponent,
8983
+ CardBodyComponent,
8984
+ CardFooterComponent,
8235
8985
  CheckIconComponent,
8986
+ Copy2ClipboardComponent,
8236
8987
  DataPagerComponent,
8988
+ //Dropdownlists
8989
+ CountryDropdownlist,
8990
+ TimezoneDropdownlist,
8991
+ //EhmlEditor
8992
+ HtmlEditorComponent,
8993
+ FormsHtmlEditorComponent,
8994
+ //Identity
8237
8995
  SignInButtonComponent,
8238
8996
  SignUpButtonComponent,
8239
8997
  SignOutButtonComponent,
8240
8998
  NodataComponent,
8999
+ //Spinners
8241
9000
  PageSpinnerComponent,
8242
9001
  LoadingComponent,
8243
- Copy2ClipboardComponent,
8244
- UrlSlugComponent,
8245
- //Dropdownlists
8246
- CountryDropdownlist,
8247
- TimezoneDropdownlist,
8248
- //Cards
8249
- CardComponent,
8250
- CardHeaderComponent,
8251
- CardBodyComponent,
8252
- CardFooterComponent,
8253
- //HtmlEditor
8254
- HtmlEditorComponent,
8255
- FormsHtmlEditorComponent,
8256
- //Dialogs
8257
- ContactUsDialog,
8258
- //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 = [
8259
9040
  NativeElementDirective,
8260
- HoveringDirective,
8261
- //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 = [
8262
9060
  AddressComponent,
8263
9061
  CompanyComponent,
8264
- ContactUsForm,
8265
- //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 = [
8266
9081
  SafeHtmlPipe,
8267
9082
  ReplaceTextPipe,
8268
- FileSizePipe,
8269
- //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 = [
8270
9102
  FormValidationSummaryComponent,
8271
9103
  ItemValidationSummaryComponent
8272
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
+ ];
8273
9130
  class AnatolyUIModule {
8274
9131
  static { this.ɵfac = function AnatolyUIModule_Factory(t) { return new (t || AnatolyUIModule)(); }; }
8275
9132
  static { this.ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: AnatolyUIModule }); }
@@ -8303,99 +9160,22 @@ class AnatolyUIModule {
8303
9160
  ]
8304
9161
  }]
8305
9162
  }], null, null); })();
8306
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(AnatolyUIModule, { declarations: [BuyAccessButtonComponent,
8307
- SubscribePlanButtonComponent,
8308
- CheckIconComponent,
8309
- DataPagerComponent,
8310
- SignInButtonComponent,
8311
- SignUpButtonComponent,
8312
- SignOutButtonComponent,
8313
- NodataComponent,
8314
- PageSpinnerComponent,
8315
- LoadingComponent,
8316
- Copy2ClipboardComponent,
8317
- UrlSlugComponent,
8318
- //Dropdownlists
8319
- CountryDropdownlist,
8320
- TimezoneDropdownlist,
8321
- //Cards
8322
- CardComponent,
8323
- CardHeaderComponent,
8324
- CardBodyComponent,
8325
- CardFooterComponent,
8326
- //HtmlEditor
8327
- HtmlEditorComponent,
8328
- FormsHtmlEditorComponent,
8329
- //Dialogs
8330
- ContactUsDialog,
8331
- //Directives
8332
- NativeElementDirective,
8333
- HoveringDirective,
8334
- //Forms
8335
- AddressComponent,
8336
- CompanyComponent,
8337
- ContactUsForm,
8338
- //Pipes
8339
- SafeHtmlPipe,
8340
- ReplaceTextPipe,
8341
- FileSizePipe,
8342
- //Validation
8343
- FormValidationSummaryComponent,
8344
- 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,
8345
9164
  RouterModule,
8346
9165
  ReactiveFormsModule,
8347
9166
  FormsModule,
8348
9167
  NgxCaptchaModule,
8349
9168
  FERootModule,
8350
9169
  FaModule,
8351
- KendoModule], exports: [BuyAccessButtonComponent,
8352
- SubscribePlanButtonComponent,
8353
- CheckIconComponent,
8354
- DataPagerComponent,
8355
- SignInButtonComponent,
8356
- SignUpButtonComponent,
8357
- SignOutButtonComponent,
8358
- NodataComponent,
8359
- PageSpinnerComponent,
8360
- LoadingComponent,
8361
- Copy2ClipboardComponent,
8362
- UrlSlugComponent,
8363
- //Dropdownlists
8364
- CountryDropdownlist,
8365
- TimezoneDropdownlist,
8366
- //Cards
8367
- CardComponent,
8368
- CardHeaderComponent,
8369
- CardBodyComponent,
8370
- CardFooterComponent,
8371
- //HtmlEditor
8372
- HtmlEditorComponent,
8373
- FormsHtmlEditorComponent,
8374
- //Dialogs
8375
- ContactUsDialog,
8376
- //Directives
8377
- NativeElementDirective,
8378
- HoveringDirective,
8379
- //Forms
8380
- AddressComponent,
8381
- CompanyComponent,
8382
- ContactUsForm,
8383
- //Pipes
8384
- SafeHtmlPipe,
8385
- ReplaceTextPipe,
8386
- FileSizePipe,
8387
- //Validation
8388
- FormValidationSummaryComponent,
8389
- ItemValidationSummaryComponent] }); })();
8390
-
8391
- /*
8392
- <file>
8393
- Project:
8394
- @osovitny/anatoly
8395
-
8396
- Authors:
8397
- Vadim Osovitny vadim@osovitny.com
8398
- 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
8399
9179
 
8400
9180
  Created:
8401
9181
  29 Aug 2022
@@ -8444,13 +9224,13 @@ class AnatolyModule {
8444
9224
  AnatolyUIModule] }); })();
8445
9225
 
8446
9226
  /*
8447
- * Public API Surface of anatoly-lib
9227
+ * Public API
8448
9228
  */
8449
- //Core
9229
+ //Billing
8450
9230
 
8451
9231
  /**
8452
9232
  * Generated bundle index. Do not edit.
8453
9233
  */
8454
9234
 
8455
- 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 };
8456
9236
  //# sourceMappingURL=osovitny-anatoly.mjs.map