@osovitny/anatoly 2.1.14 → 2.14.2

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 (168) hide show
  1. package/assets/styles/alerts.less +182 -0
  2. package/assets/styles/spinner.less +64 -0
  3. package/assets/styles/toastr.less +192 -0
  4. package/{esm2015/lib/core/consts/settings.js → esm2020/lib/core/consts/settings.mjs} +2 -2
  5. package/{esm2015/lib/core/convert.js → esm2020/lib/core/convert.mjs} +2 -2
  6. package/esm2020/lib/core/core.module.mjs +72 -0
  7. package/esm2020/lib/core/go/base-go.service.mjs +41 -0
  8. package/{esm2015/lib/core/guards/once-import.guard.js → esm2020/lib/core/guards/once-import.guard.mjs} +2 -2
  9. package/{esm2015/lib/core/guid.js → esm2020/lib/core/guid.mjs} +2 -2
  10. package/esm2020/lib/core/interceptors/httpInterceptor.mjs +108 -0
  11. package/esm2020/lib/core/localization/localization.module.mjs +47 -0
  12. package/esm2020/lib/core/localization/localization.service.mjs +185 -0
  13. package/esm2020/lib/core/localization/localizationSettings.module.mjs +88 -0
  14. package/esm2020/lib/core/localization/localize.pipe.mjs +78 -0
  15. package/{esm2015/lib/core/localization/utils.js → esm2020/lib/core/localization/utils.mjs} +2 -2
  16. package/esm2020/lib/core/logging/globalErrorHandler.mjs +44 -0
  17. package/esm2020/lib/core/logging/logging.service.mjs +39 -0
  18. package/{esm2015/lib/core/notifications/alerts.js → esm2020/lib/core/notifications/alerts.mjs} +2 -2
  19. package/{esm2015/lib/core/notifications/interfaces/notification.js → esm2020/lib/core/notifications/interfaces/notification.mjs} +2 -2
  20. package/esm2020/lib/core/notifications/services/notification-service.mjs +228 -0
  21. package/esm2020/lib/core/services/appcontext.service.mjs +118 -0
  22. package/esm2020/lib/core/services/dm.service.mjs +72 -0
  23. package/esm2020/lib/core/services/google-analytics.service.mjs +54 -0
  24. package/{esm2015/lib/core/services/idle.service.js → esm2020/lib/core/services/idle.service.mjs} +10 -8
  25. package/{esm2015/lib/core/services/loading.service.js → esm2020/lib/core/services/loading.service.mjs} +10 -9
  26. package/esm2020/lib/core/services/web-storage.service.mjs +69 -0
  27. package/{esm2015/lib/core/subs.js → esm2020/lib/core/subs.mjs} +2 -2
  28. package/esm2020/lib/core/utils.mjs +82 -0
  29. package/esm2020/lib/data/base/base-api.service.mjs +89 -0
  30. package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +77 -0
  31. package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +62 -0
  32. package/{esm2015/lib/data/consts.js → esm2020/lib/data/consts.mjs} +2 -2
  33. package/esm2020/lib/data/data.module.mjs +51 -0
  34. package/esm2020/lib/data/services/billing-api.service.mjs +65 -0
  35. package/esm2020/lib/data/services/emails-api.service.mjs +42 -0
  36. package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +43 -0
  37. package/esm2020/lib/ui/components/base-edit.component.mjs +143 -0
  38. package/esm2020/lib/ui/components/base.component.mjs +47 -0
  39. package/esm2020/lib/ui/components/base.dialog.mjs +49 -0
  40. package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +69 -0
  41. package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +63 -0
  42. package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +52 -0
  43. package/esm2020/lib/ui/components/content-header/content-header.component.mjs +37 -0
  44. package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +111 -0
  45. package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +48 -0
  46. package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +52 -0
  47. package/{esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js → esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs} +2 -2
  48. package/esm2020/lib/ui/components/identity/signin-button.component.mjs +32 -0
  49. package/esm2020/lib/ui/components/identity/signout-button.component.mjs +32 -0
  50. package/esm2020/lib/ui/components/identity/signup-button.component.mjs +31 -0
  51. package/esm2020/lib/ui/components/loading/loading.component.mjs +49 -0
  52. package/esm2020/lib/ui/components/spinner/spinner.component.mjs +74 -0
  53. package/esm2020/lib/ui/directives/native-element.directive.mjs +41 -0
  54. package/esm2020/lib/ui/forms/contact-us/contact-us.mjs +120 -0
  55. package/esm2020/lib/ui/pipes/filesize.pipe.mjs +45 -0
  56. package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +40 -0
  57. package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +37 -0
  58. package/esm2020/lib/ui/ui.module.mjs +167 -0
  59. package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +67 -0
  60. package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +40 -0
  61. package/esm2020/lib/ui/validation/validation-summary.component.mjs +128 -0
  62. package/esm2020/public-api.mjs +68 -0
  63. package/fesm2015/osovitny-anatoly.mjs +3650 -0
  64. package/fesm2015/osovitny-anatoly.mjs.map +1 -0
  65. package/fesm2020/osovitny-anatoly.mjs +3658 -0
  66. package/fesm2020/osovitny-anatoly.mjs.map +1 -0
  67. package/{osovitny-anatoly.d.ts → index.d.ts} +1 -0
  68. package/lib/core/core.module.d.ts +5 -0
  69. package/lib/core/go/base-go.service.d.ts +3 -0
  70. package/lib/core/interceptors/httpInterceptor.d.ts +3 -0
  71. package/lib/core/localization/localization.module.d.ts +6 -0
  72. package/lib/core/localization/localization.service.d.ts +3 -0
  73. package/lib/core/localization/localizationSettings.module.d.ts +5 -0
  74. package/lib/core/localization/localize.pipe.d.ts +3 -0
  75. package/lib/core/logging/globalErrorHandler.d.ts +3 -0
  76. package/lib/core/logging/logging.service.d.ts +3 -0
  77. package/lib/core/notifications/services/notification-service.d.ts +3 -0
  78. package/lib/core/services/appcontext.service.d.ts +3 -0
  79. package/lib/core/services/dm.service.d.ts +3 -0
  80. package/lib/core/services/google-analytics.service.d.ts +3 -0
  81. package/lib/core/services/idle.service.d.ts +3 -0
  82. package/lib/core/services/loading.service.d.ts +3 -0
  83. package/lib/core/services/web-storage.service.d.ts +5 -0
  84. package/lib/data/base/base-api.service.d.ts +3 -0
  85. package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -0
  86. package/lib/data/base/grid/base-grid-read.service.d.ts +3 -0
  87. package/lib/data/data.module.d.ts +5 -0
  88. package/lib/data/services/billing-api.service.d.ts +3 -0
  89. package/lib/data/services/emails-api.service.d.ts +10 -0
  90. package/lib/data/services/notifications/notifications-api-service.d.ts +3 -0
  91. package/lib/ui/components/base-edit.component.d.ts +5 -2
  92. package/lib/ui/components/base.component.d.ts +4 -1
  93. package/lib/ui/components/base.dialog.d.ts +3 -0
  94. package/lib/ui/components/billing/buyaccess-button.component.d.ts +5 -2
  95. package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +4 -1
  96. package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +4 -1
  97. package/lib/ui/components/content-header/content-header.component.d.ts +3 -0
  98. package/lib/ui/components/html-editor/base-html-editor.component.d.ts +3 -0
  99. package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +3 -0
  100. package/lib/ui/components/html-editor/html-editor.component.d.ts +3 -0
  101. package/lib/ui/components/identity/signin-button.component.d.ts +3 -0
  102. package/lib/ui/components/identity/signout-button.component.d.ts +3 -0
  103. package/lib/ui/components/identity/signup-button.component.d.ts +3 -0
  104. package/lib/ui/components/loading/loading.component.d.ts +4 -1
  105. package/lib/ui/components/spinner/spinner.component.d.ts +3 -0
  106. package/lib/ui/directives/native-element.directive.d.ts +3 -0
  107. package/lib/ui/forms/contact-us/contact-us.d.ts +33 -0
  108. package/lib/ui/pipes/filesize.pipe.d.ts +3 -0
  109. package/lib/ui/pipes/replace-text.pipe.d.ts +3 -0
  110. package/lib/ui/pipes/safeHtml.pipe.d.ts +3 -0
  111. package/lib/ui/ui.module.d.ts +26 -0
  112. package/lib/ui/validation/form-validation-summary.component.d.ts +3 -0
  113. package/lib/ui/validation/item-validation-summary.component.d.ts +3 -0
  114. package/lib/ui/validation/validation-summary.component.d.ts +3 -0
  115. package/package.json +23 -11
  116. package/public-api.d.ts +3 -2
  117. package/bundles/osovitny-anatoly.umd.js +0 -3700
  118. package/bundles/osovitny-anatoly.umd.js.map +0 -1
  119. package/esm2015/lib/core/core.module.js +0 -58
  120. package/esm2015/lib/core/go/base-go.service.js +0 -42
  121. package/esm2015/lib/core/interceptors/httpInterceptor.js +0 -109
  122. package/esm2015/lib/core/localization/localization.module.js +0 -41
  123. package/esm2015/lib/core/localization/localization.service.js +0 -187
  124. package/esm2015/lib/core/localization/localizationSettings.module.js +0 -78
  125. package/esm2015/lib/core/localization/localize.pipe.js +0 -78
  126. package/esm2015/lib/core/logging/globalErrorHandler.js +0 -44
  127. package/esm2015/lib/core/logging/logging.service.js +0 -38
  128. package/esm2015/lib/core/notifications/services/notification-service.js +0 -230
  129. package/esm2015/lib/core/services/appcontext.service.js +0 -119
  130. package/esm2015/lib/core/services/dm.service.js +0 -74
  131. package/esm2015/lib/core/services/google-analytics.service.js +0 -53
  132. package/esm2015/lib/core/services/web-storage.service.js +0 -66
  133. package/esm2015/lib/core/utils.js +0 -81
  134. package/esm2015/lib/data/base/base-api.service.js +0 -89
  135. package/esm2015/lib/data/base/grid/base-grid-edit.service.js +0 -77
  136. package/esm2015/lib/data/base/grid/base-grid-read.service.js +0 -62
  137. package/esm2015/lib/data/data.module.js +0 -43
  138. package/esm2015/lib/data/services/billing-api.service.js +0 -65
  139. package/esm2015/lib/data/services/notifications/notifications-api-service.js +0 -45
  140. package/esm2015/lib/ui/components/base-edit.component.js +0 -142
  141. package/esm2015/lib/ui/components/base.component.js +0 -43
  142. package/esm2015/lib/ui/components/base.dialog.js +0 -47
  143. package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +0 -71
  144. package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +0 -63
  145. package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +0 -54
  146. package/esm2015/lib/ui/components/content-header/content-header.component.js +0 -37
  147. package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +0 -108
  148. package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +0 -44
  149. package/esm2015/lib/ui/components/html-editor/html-editor.component.js +0 -51
  150. package/esm2015/lib/ui/components/identity/signin-button.component.js +0 -33
  151. package/esm2015/lib/ui/components/identity/signout-button.component.js +0 -33
  152. package/esm2015/lib/ui/components/identity/signup-button.component.js +0 -31
  153. package/esm2015/lib/ui/components/loading/loading.component.js +0 -49
  154. package/esm2015/lib/ui/components/spinner/spinner.component.js +0 -73
  155. package/esm2015/lib/ui/directives/native-element.directive.js +0 -41
  156. package/esm2015/lib/ui/pipes/filesize.pipe.js +0 -41
  157. package/esm2015/lib/ui/pipes/replace-text.pipe.js +0 -36
  158. package/esm2015/lib/ui/pipes/safeHtml.pipe.js +0 -36
  159. package/esm2015/lib/ui/ui.module.js +0 -105
  160. package/esm2015/lib/ui/validation/form-validation-summary.component.js +0 -64
  161. package/esm2015/lib/ui/validation/item-validation-summary.component.js +0 -38
  162. package/esm2015/lib/ui/validation/validation-summary.component.js +0 -126
  163. package/esm2015/public-api.js +0 -62
  164. package/fesm2015/osovitny-anatoly.js +0 -3434
  165. package/fesm2015/osovitny-anatoly.js.map +0 -1
  166. package/osovitny-anatoly.metadata.json +0 -1
  167. /package/{esm2015/lib/core/consts/urls.js → esm2020/lib/core/consts/urls.mjs} +0 -0
  168. /package/{esm2015/osovitny-anatoly.js → esm2020/osovitny-anatoly.mjs} +0 -0
@@ -0,0 +1,41 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 28 Jun 2020
12
+
13
+ Version:
14
+ 1.0
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ //Node
20
+ import { Directive } from "@angular/core";
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/forms";
23
+ export class NativeElementDirective {
24
+ constructor(el, control) {
25
+ this.el = el;
26
+ this.control = control;
27
+ }
28
+ ngOnInit() {
29
+ // sets the localization key to the control
30
+ this.control.control.nativeElement = this.el.nativeElement;
31
+ }
32
+ }
33
+ NativeElementDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NativeElementDirective, deps: [{ token: i0.ElementRef }, { token: i1.NgControl }], target: i0.ɵɵFactoryTarget.Directive });
34
+ NativeElementDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.6", type: NativeElementDirective, selector: "[formControl], [formControlName]", ngImport: i0 });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: NativeElementDirective, decorators: [{
36
+ type: Directive,
37
+ args: [{
38
+ selector: '[formControl], [formControlName]'
39
+ }]
40
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.NgControl }]; } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF0aXZlLWVsZW1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2RpcmVjdGl2ZXMvbmF0aXZlLWVsZW1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsU0FBUyxFQUFzQixNQUFNLGVBQWUsQ0FBQzs7O0FBTTlELE1BQU0sT0FBTyxzQkFBc0I7SUFDakMsWUFBb0IsRUFBK0IsRUFBVSxPQUFrQjtRQUEzRCxPQUFFLEdBQUYsRUFBRSxDQUE2QjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVc7SUFDL0UsQ0FBQztJQUVELFFBQVE7UUFDTiwyQ0FBMkM7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFlLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO0lBQ3RFLENBQUM7O21IQVBVLHNCQUFzQjt1R0FBdEIsc0JBQXNCOzJGQUF0QixzQkFBc0I7a0JBSGxDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtDQUFrQztpQkFDN0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyOCBKdW4gMjAyMFxyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbZm9ybUNvbnRyb2xdLCBbZm9ybUNvbnRyb2xOYW1lXSdcclxufSlcclxuZXhwb3J0IGNsYXNzIE5hdGl2ZUVsZW1lbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWY8SFRNTEZvcm1FbGVtZW50PiwgcHJpdmF0ZSBjb250cm9sOiBOZ0NvbnRyb2wpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgLy8gc2V0cyB0aGUgbG9jYWxpemF0aW9uIGtleSB0byB0aGUgY29udHJvbFxyXG4gICAgKHRoaXMuY29udHJvbC5jb250cm9sIGFzIGFueSkubmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,120 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 29 June 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
18
+ import { FormControl, Validators } from '@angular/forms';
19
+ import { BaseEditComponent } from "@ui/components/base-edit.component";
20
+ import * as i0 from "@angular/core";
21
+ import * as i1 from "@angular/forms";
22
+ import * as i2 from "@core/services/appcontext.service";
23
+ import * as i3 from "@data/services/emails-api.service";
24
+ import * as i4 from "@core/notifications/services/notification-service";
25
+ import * as i5 from "@angular/common";
26
+ import * as i6 from "ngx-captcha";
27
+ import * as i7 from "../../directives/native-element.directive";
28
+ import * as i8 from "../../validation/form-validation-summary.component";
29
+ import * as i9 from "../../validation/item-validation-summary.component";
30
+ export class ContactUsForm extends BaseEditComponent {
31
+ constructor(fb, appContext, api, notificationService) {
32
+ super();
33
+ this.fb = fb;
34
+ this.appContext = appContext;
35
+ this.api = api;
36
+ this.notificationService = notificationService;
37
+ this.isUserSignedIn = false;
38
+ this.topicList = [
39
+ { value: 'Billing & Pricing' },
40
+ { value: 'Legal & Privacy' },
41
+ { value: 'Repor abuse' },
42
+ { value: 'Technical Support' },
43
+ { value: 'Other' }
44
+ ];
45
+ //Inputs
46
+ this.showActionButtons = true;
47
+ //Outputs
48
+ this.submit = new EventEmitter();
49
+ }
50
+ ngOnInit() {
51
+ this.createFormGroup();
52
+ this.init();
53
+ }
54
+ createFormGroup() {
55
+ this.formGroup = this.fb.group({
56
+ captcha: new FormControl(null, [Validators.required]),
57
+ name: new FormControl('', [Validators.required]),
58
+ email: new FormControl('', [Validators.required]),
59
+ topic: new FormControl('', [Validators.required]),
60
+ subject: new FormControl('', [Validators.required]),
61
+ message: new FormControl('', [Validators.required])
62
+ });
63
+ }
64
+ init() {
65
+ this.appContext.getCurrent(context => {
66
+ this.isUserSignedIn = context.isUserSignedIn;
67
+ this.siteKey = context.reCaptchaSiteKey;
68
+ this.selectedTopic = this.topicList[3].value;
69
+ this.setFormValue('topic', this.selectedTopic);
70
+ if (this.isUserSignedIn) {
71
+ this.setFormValue('name', context.user.displayNameOrFullName);
72
+ this.setFormValue('email', context.user.email);
73
+ }
74
+ }, false);
75
+ }
76
+ isValid() {
77
+ return this.formGroup.valid;
78
+ }
79
+ contactUs() {
80
+ this.formSubmitted = true;
81
+ if (!this.isValid())
82
+ return;
83
+ const captcha = this.getFormValue('captcha');
84
+ const name = this.getFormValue('name');
85
+ const email = this.getFormValue('email');
86
+ const topic = this.selectedTopic;
87
+ const subject = this.getFormValue('subject');
88
+ const message = this.getFormValue('message');
89
+ this.api.sendContactUs(captcha, name, email, topic, subject, message, () => {
90
+ this.formSubmitted = false;
91
+ this.notificationService.success('Message has been sent successfully');
92
+ this.formGroup.reset();
93
+ this.recaptcha.resetCaptcha();
94
+ this.submit.emit();
95
+ }, () => {
96
+ this.notificationService.error();
97
+ });
98
+ }
99
+ //Events
100
+ onSubmit() {
101
+ this.contactUs();
102
+ }
103
+ onTopicChange(event) {
104
+ this.selectedTopic = event.target.value;
105
+ }
106
+ }
107
+ ContactUsForm.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContactUsForm, deps: [{ token: i1.FormBuilder }, { token: i2.AppContextService }, { token: i3.EmailsApiService }, { token: i4.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
108
+ ContactUsForm.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: ContactUsForm, selector: "anatoly-forms-contactus-form", inputs: { showActionButtons: "showActionButtons" }, outputs: { submit: "submit" }, viewQueries: [{ propertyName: "recaptcha", first: true, predicate: ["recaptcha"], descendants: true }], usesInheritance: true, ngImport: i0, 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-6\">\r\n <div style='transform:scale(0.8);transform-origin:0;'>\r\n <ngx-recaptcha2 #recaptcha [siteKey]='siteKey' formControlName='captcha'></ngx-recaptcha2>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <button *ngIf='showActionButtons'\r\n [class.btn-primary]='!formGroup.invalid'\r\n class='btn btn-success float-right m-t-20'\r\n type='submit'>\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n", dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i6.ReCaptcha2Component, selector: "ngx-recaptcha2", inputs: ["theme", "size", "hl"] }, { kind: "directive", type: i7.NativeElementDirective, selector: "[formControl], [formControlName]" }, { kind: "component", type: i8.FormValidationSummaryComponent, selector: "anatoly-form-validation-summary", inputs: ["visible", "customerrors", "viewtype"] }, { kind: "component", type: i9.ItemValidationSummaryComponent, selector: "anatoly-item-validation-summary", inputs: ["controlName", "controlTitle"] }] });
109
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ContactUsForm, decorators: [{
110
+ type: Component,
111
+ 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-6\">\r\n <div style='transform:scale(0.8);transform-origin:0;'>\r\n <ngx-recaptcha2 #recaptcha [siteKey]='siteKey' formControlName='captcha'></ngx-recaptcha2>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <button *ngIf='showActionButtons'\r\n [class.btn-primary]='!formGroup.invalid'\r\n class='btn btn-success float-right m-t-20'\r\n type='submit'>\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n" }]
112
+ }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.AppContextService }, { type: i3.EmailsApiService }, { type: i4.NotificationService }]; }, propDecorators: { showActionButtons: [{
113
+ type: Input
114
+ }], submit: [{
115
+ type: Output
116
+ }], recaptcha: [{
117
+ type: ViewChild,
118
+ args: ['recaptcha']
119
+ }] } });
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9mb3Jtcy9jb250YWN0LXVzL2NvbnRhY3QtdXMudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvZm9ybXMvY29udGFjdC11cy9jb250YWN0LXVzLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFlLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQU90RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7QUFNdkUsTUFBTSxPQUFPLGFBQWMsU0FBUSxpQkFBaUI7SUFzQmxELFlBQ1UsRUFBZSxFQUNmLFVBQTZCLEVBQzdCLEdBQXFCLEVBQ3JCLG1CQUF3QztRQUNoRCxLQUFLLEVBQUUsQ0FBQztRQUpBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixlQUFVLEdBQVYsVUFBVSxDQUFtQjtRQUM3QixRQUFHLEdBQUgsR0FBRyxDQUFrQjtRQUNyQix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBekJsRCxtQkFBYyxHQUFZLEtBQUssQ0FBQztRQUloQyxjQUFTLEdBQUc7WUFDVixFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRTtZQUM5QixFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRTtZQUM1QixFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7WUFDeEIsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7WUFDOUIsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO1NBQ25C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QUMsYUFBYSxHQUFHLEtBQUssQ0FBQztZQUMzQixJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7WUFDdkUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRTlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxFQUNELEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQyxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFFRCxRQUFRO0lBQ1IsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQUs7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztJQUMxQyxDQUFDOzswR0FsR1UsYUFBYTs4RkFBYixhQUFhLHNSQy9CMUIsKzVJQWlGQTsyRkRsRGEsYUFBYTtrQkFKekIsU0FBUzsrQkFDRSw4QkFBOEI7bU1BaUIvQixpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBR0ksTUFBTTtzQkFBZixNQUFNO2dCQUdpQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyOSBKdW5lIDIwMjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVDYXB0Y2hhMkNvbXBvbmVudCB9IGZyb20gJ25neC1jYXB0Y2hhJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEFwcENvbnRleHRTZXJ2aWNlIH0gZnJvbSBcIkBjb3JlL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSBcIkBjb3JlL25vdGlmaWNhdGlvbnMvc2VydmljZXMvbm90aWZpY2F0aW9uLXNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRW1haWxzQXBpU2VydmljZSB9IGZyb20gJ0BkYXRhL3NlcnZpY2VzL2VtYWlscy1hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IEJhc2VFZGl0Q29tcG9uZW50IH0gZnJvbSBcIkB1aS9jb21wb25lbnRzL2Jhc2UtZWRpdC5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1mb3Jtcy1jb250YWN0dXMtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3QtdXMuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRhY3RVc0Zvcm0gZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNVc2VyU2lnbmVkSW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzaXRlS2V5Pzogc3RyaW5nO1xyXG4gIHNlbGVjdGVkVG9waWM7XHJcbiAgXHJcbiAgdG9waWNMaXN0ID0gW1xyXG4gICAgeyB2YWx1ZTogJ0JpbGxpbmcgJiBQcmljaW5nJyB9LFxyXG4gICAgeyB2YWx1ZTogJ0xlZ2FsICYgUHJpdmFjeScgfSxcclxuICAgIHsgdmFsdWU6ICdSZXBvciBhYnVzZScgfSxcclxuICAgIHsgdmFsdWU6ICdUZWNobmljYWwgU3VwcG9ydCcgfSxcclxuICAgIHsgdmFsdWU6ICdPdGhlcicgfVxyXG4gIF07XHJcbiAgXHJcbiAgLy9JbnB1dHNcclxuICBASW5wdXQoKSBzaG93QWN0aW9uQnV0dG9ucyA9IHRydWU7XHJcbiAgXHJcbiAgLy9PdXRwdXRzXHJcbiAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIC8vVmlld0NoaWxkc1xyXG4gIEBWaWV3Q2hpbGQoJ3JlY2FwdGNoYScpIHJlY2FwdGNoYTogUmVDYXB0Y2hhMkNvbXBvbmVudDtcclxuICBcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBhcHBDb250ZXh0OiBBcHBDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpOiBFbWFpbHNBcGlTZXJ2aWNlLCBcclxuICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbiAgXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG4gIFxyXG4gIGNyZWF0ZUZvcm1Hcm91cCgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIGNhcHRjaGE6IG5ldyBGb3JtQ29udHJvbChudWxsLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJywgWyBWYWxpZGF0b3JzLnJlcXVpcmVkIF0pLFxyXG4gICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sKCcnLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICAgIHRvcGljOiBuZXcgRm9ybUNvbnRyb2woJycsIFsgVmFsaWRhdG9ycy5yZXF1aXJlZCBdKSxcclxuICAgICAgc3ViamVjdDogbmV3IEZvcm1Db250cm9sKCcnLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICAgIG1lc3NhZ2U6IG5ldyBGb3JtQ29udHJvbCgnJywgWyBWYWxpZGF0b3JzLnJlcXVpcmVkIF0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICB0aGlzLmFwcENvbnRleHQuZ2V0Q3VycmVudChjb250ZXh0ID0+IHtcclxuICAgICAgdGhpcy5pc1VzZXJTaWduZWRJbiA9IGNvbnRleHQuaXNVc2VyU2lnbmVkSW47XHJcbiAgICAgIHRoaXMuc2l0ZUtleSA9IGNvbnRleHQucmVDYXB0Y2hhU2l0ZUtleTtcclxuICAgICAgdGhpcy5zZWxlY3RlZFRvcGljID0gdGhpcy50b3BpY0xpc3RbM10udmFsdWU7XHJcblxyXG4gICAgICB0aGlzLnNldEZvcm1WYWx1ZSgndG9waWMnLCB0aGlzLnNlbGVjdGVkVG9waWMpO1xyXG5cclxuICAgICAgaWYgKHRoaXMuaXNVc2VyU2lnbmVkSW4pIHtcclxuICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZSgnbmFtZScsIGNvbnRleHQudXNlci5kaXNwbGF5TmFtZU9yRnVsbE5hbWUpO1xyXG4gICAgICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCdlbWFpbCcsIGNvbnRleHQudXNlci5lbWFpbCk7XHJcbiAgICAgIH1cclxuICAgIH0sIGZhbHNlKTtcclxuICB9XHJcbiAgXHJcbiAgaXNWYWxpZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1Hcm91cC52YWxpZDtcclxuICB9XHJcbiAgXHJcbiAgY29udGFjdFVzKCkge1xyXG4gICAgdGhpcy5mb3JtU3VibWl0dGVkID0gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHJldHVybjtcclxuICAgIFxyXG4gICAgY29uc3QgY2FwdGNoYSA9IHRoaXMuZ2V0Rm9ybVZhbHVlKCdjYXB0Y2hhJyk7XHJcbiAgICBjb25zdCBuYW1lID0gdGhpcy5nZXRGb3JtVmFsdWUoJ25hbWUnKTtcclxuICAgIGNvbnN0IGVtYWlsID0gdGhpcy5nZXRGb3JtVmFsdWUoJ2VtYWlsJyk7XHJcbiAgICBjb25zdCB0b3BpYyA9IHRoaXMuc2VsZWN0ZWRUb3BpYztcclxuICAgIGNvbnN0IHN1YmplY3QgPSB0aGlzLmdldEZvcm1WYWx1ZSgnc3ViamVjdCcpO1xyXG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuZ2V0Rm9ybVZhbHVlKCdtZXNzYWdlJyk7XHJcbiAgICBcclxuICAgIHRoaXMuYXBpLnNlbmRDb250YWN0VXMoY2FwdGNoYSwgbmFtZSwgZW1haWwsIHRvcGljLCBzdWJqZWN0LCBtZXNzYWdlLFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25TZXJ2aWNlLnN1Y2Nlc3MoJ01lc3NhZ2UgaGFzIGJlZW4gc2VudCBzdWNjZXNzZnVsbHknKTtcclxuICAgICAgICB0aGlzLmZvcm1Hcm91cC5yZXNldCgpO1xyXG4gICAgICAgIHRoaXMucmVjYXB0Y2hhLnJlc2V0Q2FwdGNoYSgpO1xyXG4gICAgICAgIFxyXG4gICAgICAgIHRoaXMuc3VibWl0LmVtaXQoKTtcclxuICAgICAgfSxcclxuICAgICAgKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcigpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBcclxuICAvL0V2ZW50c1xyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5jb250YWN0VXMoKTtcclxuICB9XHJcbiAgXHJcbiAgb25Ub3BpY0NoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRvcGljID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gIH1cclxufSIsIjxmb3JtIChuZ1N1Ym1pdCk9J29uU3VibWl0KCknIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnIG5vdmFsaWRhdGU+XHJcbiAgPGFuYXRvbHktZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlzaWJsZV09J2Zvcm1TdWJtaXR0ZWQgJiYgZm9ybUdyb3VwLmludmFsaWQnPjwvYW5hdG9seS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuXHJcbiAgPGRpdiBjbGFzcz0nY29udGFjdC11cyc+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9J2Zvcm0tZmllbGRzIGNvbC02Jz5cclxuICAgICAgICA8cD5XaGF0IGNhbiB3ZSBoZWxwIHlvdSB3aXRoPzwvcD5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaXNDb250cm9sSW52YWxpZCgndG9waWMnKSB9XCIgY2xhc3M9J2Zvcm0tdG9waWMnPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz0nZm9ybS1zZWxlY3Qtd3JhcHBlcic+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0nYXNzaXN0aXZlLXRleHQnPlRvcGljICo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8c2VsZWN0IChjaGFuZ2UpPSdvblRvcGljQ2hhbmdlKCRldmVudCknIGNsYXNzPSdmb3JtLXNlbGVjdCcgZm9ybUNvbnRyb2xOYW1lPSd0b3BpYyc+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9J2xldCB0b3BpYyBvZiB0b3BpY0xpc3QnIFt2YWx1ZV09J3RvcGljLnZhbHVlJz57eyB0b3BpYy52YWx1ZSB9fSA8L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE5hbWU9J3RvcGljJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J3RvcGljJz5cclxuICAgICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGlzQ29udHJvbEludmFsaWQoJ25hbWUnKSB9XCIgY2xhc3M9J2Zvcm0tbmFtZSc+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9J2Fzc2lzdGl2ZS10ZXh0Jz5OYW1lICo8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPSdmb3JtLWNvbnRyb2wnIGZvcm1Db250cm9sTmFtZT0nbmFtZScgcGxhY2Vob2xkZXI9J05hbWUgKicgdHlwZT0ndGV4dCc+XHJcbiAgICAgICAgICA8YW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeSBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE5hbWU9J25hbWUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J25hbWUnPlxyXG4gICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdlbWFpbCcpIH1cIiBjbGFzcz0nZm9ybS1lbWFpbCc+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9J2Fzc2lzdGl2ZS10ZXh0Jz5FLW1haWwgKiA8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPSdmb3JtLWNvbnRyb2wnIGZvcm1Db250cm9sTmFtZT0nZW1haWwnIHBsYWNlaG9sZGVyPSdFLW1haWwgKicgdHlwZT0ndGV4dCcgLz5cclxuICAgICAgICAgIDxwICpuZ0lmPSchaXNVc2VyU2lnbmVkSW4nPlBsZWFzZSBpbmRpY2F0ZSB0aGUgZW1haWwgdXNlZCBmb3IgeW91ciBNYWlsRXggbG9naW4gaWYgeW91IGFscmVhZHkgaGF2ZSBhbiBhY2NvdW50PC9wPlxyXG4gICAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lPSdlbWFpbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUaXRsZT0nZW1haWwnPlxyXG4gICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdzdWJqZWN0JykgfVwiIGNsYXNzPSdmb3JtLXN1YmplY3QnPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPSdhc3Npc3RpdmUtdGV4dCc+U3ViamVjdCAqPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz0nZm9ybS1jb250cm9sJyBmb3JtQ29udHJvbE5hbWU9J3N1YmplY3QnIHBsYWNlaG9sZGVyPSdTdWJqZWN0IConIHR5cGU9J3RleHQnIC8+XHJcbiAgICAgICAgICA8YW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeSBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE5hbWU9J3N1YmplY3QnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J3N1YmplY3QnPlxyXG4gICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9J2NvbC02Jz5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaXNDb250cm9sSW52YWxpZCgnbWVzc2FnZScpIH1cIiBjbGFzcz0nZm9ybS1tZXNzYWdlJz5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz0nYXNzaXN0aXZlLXRleHQnPk1lc3NhZ2UgKjwvbGFiZWw+XHJcbiAgICAgICAgICA8dGV4dGFyZWEgZm9ybUNvbnRyb2xOYW1lPSdtZXNzYWdlJyBuYW1lPSdtZXNzYWdlJyBwbGFjZWhvbGRlcj0nTWVzc2FnZSAgKicgcm93cz0nNCdcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0Jz48L3RleHRhcmVhPlxyXG4gICAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lPSdtZXNzYWdlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSdtZXNzYWdlJz5cclxuICAgICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBmb3JtLWZvb3RlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxyXG4gICAgICAgICAgPGRpdiBzdHlsZT0ndHJhbnNmb3JtOnNjYWxlKDAuOCk7dHJhbnNmb3JtLW9yaWdpbjowOyc+XHJcbiAgICAgICAgICAgIDxuZ3gtcmVjYXB0Y2hhMiAjcmVjYXB0Y2hhIFtzaXRlS2V5XT0nc2l0ZUtleScgZm9ybUNvbnRyb2xOYW1lPSdjYXB0Y2hhJz48L25neC1yZWNhcHRjaGEyPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPSdzaG93QWN0aW9uQnV0dG9ucydcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1wcmltYXJ5XT0nIWZvcm1Hcm91cC5pbnZhbGlkJ1xyXG4gICAgICAgICAgICAgICAgICBjbGFzcz0nYnRuIGJ0bi1zdWNjZXNzIGZsb2F0LXJpZ2h0IG0tdC0yMCdcclxuICAgICAgICAgICAgICAgICAgdHlwZT0nc3VibWl0Jz5cclxuICAgICAgICAgICAgU3VibWl0XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Zvcm0+XHJcbiJdfQ==
@@ -0,0 +1,45 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 26 Jun 2020
12
+
13
+ Version:
14
+ 1.0
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ // Node
20
+ import { Pipe } from '@angular/core';
21
+ import * as i0 from "@angular/core";
22
+ export class FileSizePipe {
23
+ constructor() {
24
+ this.units = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
25
+ }
26
+ transform(bytes = 0, precision = 0) {
27
+ if (isNaN(parseFloat(String(bytes))) || !isFinite(bytes))
28
+ return '';
29
+ let unit = 0;
30
+ while (bytes >= 1024) {
31
+ bytes /= 1024;
32
+ unit++;
33
+ }
34
+ return bytes.toFixed(+precision) + ' ' + this.units[unit];
35
+ }
36
+ }
37
+ FileSizePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FileSizePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
38
+ FileSizePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: FileSizePipe, name: "filesize" });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FileSizePipe, decorators: [{
40
+ type: Pipe,
41
+ args: [{
42
+ name: 'filesize',
43
+ }]
44
+ }] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXNpemUucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9waXBlcy9maWxlc2l6ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7QUFLbEQsTUFBTSxPQUFPLFlBQVk7SUFIekI7UUFJVSxVQUFLLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0tBY3pEO0lBWkMsU0FBUyxDQUFDLFFBQWdCLENBQUMsRUFBRSxZQUFvQixDQUFDO1FBQ2hELElBQUksS0FBSyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBRXBFLElBQUksSUFBSSxHQUFHLENBQUMsQ0FBQztRQUViLE9BQU8sS0FBSyxJQUFJLElBQUksRUFBRTtZQUNwQixLQUFLLElBQUksSUFBSSxDQUFDO1lBQ2QsSUFBSSxFQUFFLENBQUM7U0FDUjtRQUVELE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7O3lHQWRVLFlBQVk7dUdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUh4QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxVQUFVO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2ZpbGVzaXplJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVTaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHByaXZhdGUgdW5pdHMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJ107XHJcblxyXG4gIHRyYW5zZm9ybShieXRlczogbnVtYmVyID0gMCwgcHJlY2lzaW9uOiBudW1iZXIgPSAwKTogc3RyaW5nIHtcclxuICAgIGlmIChpc05hTihwYXJzZUZsb2F0KFN0cmluZyhieXRlcykpKSB8fCAhaXNGaW5pdGUoYnl0ZXMpKSByZXR1cm4gJyc7XHJcblxyXG4gICAgbGV0IHVuaXQgPSAwO1xyXG5cclxuICAgIHdoaWxlIChieXRlcyA+PSAxMDI0KSB7XHJcbiAgICAgIGJ5dGVzIC89IDEwMjQ7XHJcbiAgICAgIHVuaXQrKztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gYnl0ZXMudG9GaXhlZCgrcHJlY2lzaW9uKSArICcgJyArIHRoaXMudW5pdHNbdW5pdF07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,40 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 26 Jun 2020
12
+
13
+ Version:
14
+ 1.0
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ // Node
20
+ import { Pipe } from "@angular/core";
21
+ import * as i0 from "@angular/core";
22
+ export class ReplaceTextPipe {
23
+ transform(inputData, search, replacement) {
24
+ if (inputData) {
25
+ return inputData.replace(new RegExp(search, "g"), replacement);
26
+ }
27
+ else {
28
+ return inputData;
29
+ }
30
+ }
31
+ }
32
+ ReplaceTextPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
33
+ ReplaceTextPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, name: "replaceText" });
34
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: ReplaceTextPipe, decorators: [{
35
+ type: Pipe,
36
+ args: [{
37
+ name: "replaceText",
38
+ }]
39
+ }] });
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwbGFjZS10ZXh0LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvcGlwZXMvcmVwbGFjZS10ZXh0LnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQUtwRCxNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQUMsU0FBaUIsRUFBRSxNQUFjLEVBQUUsV0FBbUI7UUFDOUQsSUFBSSxTQUFTLEVBQUU7WUFDYixPQUFPLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1NBQ2hFO2FBQU07WUFDTCxPQUFPLFNBQVMsQ0FBQztTQUNsQjtJQUNILENBQUM7OzRHQVBVLGVBQWU7MEdBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUgzQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxhQUFhO2lCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6IFwicmVwbGFjZVRleHRcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFJlcGxhY2VUZXh0UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybShpbnB1dERhdGE6IHN0cmluZywgc2VhcmNoOiBzdHJpbmcsIHJlcGxhY2VtZW50OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgaWYgKGlucHV0RGF0YSkge1xyXG4gICAgICByZXR1cm4gaW5wdXREYXRhLnJlcGxhY2UobmV3IFJlZ0V4cChzZWFyY2gsIFwiZ1wiKSwgcmVwbGFjZW1lbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGlucHV0RGF0YTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,37 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 27 Oct 2019
12
+
13
+ Version:
14
+ 1.0
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ // Node
20
+ import { Pipe } from '@angular/core';
21
+ import * as i0 from "@angular/core";
22
+ import * as i1 from "@angular/platform-browser";
23
+ export class SafeHtmlPipe {
24
+ constructor(sanitized) {
25
+ this.sanitized = sanitized;
26
+ }
27
+ transform(value) {
28
+ return this.sanitized.bypassSecurityTrustHtml(value);
29
+ }
30
+ }
31
+ SafeHtmlPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
32
+ SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: SafeHtmlPipe, decorators: [{
34
+ type: Pipe,
35
+ args: [{ name: 'safeHtml' }]
36
+ }], ctorParameters: function () { return [{ type: i1.DomSanitizer }]; } });
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZUh0bWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9waXBlcy9zYWZlSHRtbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7O0FBSWxELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBRWhELFNBQVMsQ0FBQyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O3lHQUxVLFlBQVk7dUdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI3IE9jdCAyMDE5XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjIgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBQaXBlKHsgbmFtZTogJ3NhZmVIdG1sJyB9KVxyXG5leHBvcnQgY2xhc3MgU2FmZUh0bWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzYW5pdGl6ZWQ6IERvbVNhbml0aXplcikgeyB9XHJcblxyXG4gIHRyYW5zZm9ybSh2YWx1ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2FuaXRpemVkLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHZhbHVlKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,167 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 26 Jun 2020
12
+
13
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
14
+ </file>
15
+ */
16
+ //Node
17
+ import { NgModule } from "@angular/core";
18
+ import { CommonModule } from "@angular/common";
19
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
20
+ import { NgxCaptchaModule } from 'ngx-captcha';
21
+ //Froala
22
+ import { FroalaEditorModule, FroalaViewModule } from "angular-froala-wysiwyg";
23
+ //UI/Components
24
+ import { SubscribePlanButtonComponent } from "./components/billing/subscribe-plan-button.component";
25
+ import { UpgradePlanButtonComponent } from "./components/billing/upgrade-plan-button.component";
26
+ import { BuyAccessButtonComponent } from "./components/billing/buyaccess-button.component";
27
+ import { SignInButtonComponent } from "./components/identity/signin-button.component";
28
+ import { SignUpButtonComponent } from "./components/identity/signup-button.component";
29
+ import { SignOutButtonComponent } from "./components/identity/signout-button.component";
30
+ import { ContentHeaderComponent } from "./components/content-header/content-header.component";
31
+ import { SpinnerComponent } from "./components/spinner/spinner.component";
32
+ import { LoadingComponent } from "./components/loading/loading.component";
33
+ //Editor
34
+ import { HtmlEditorComponent } from "./components/html-editor/html-editor.component";
35
+ import { FormsHtmlEditorComponent } from "./components/html-editor/forms-html-editor.component";
36
+ //UI/Directives
37
+ import { NativeElementDirective } from "./directives/native-element.directive";
38
+ //UI/Forms
39
+ import { ContactUsForm } from "./forms/contact-us/contact-us";
40
+ //UI/Pipes
41
+ import { SafeHtmlPipe } from "./pipes/safeHtml.pipe";
42
+ import { ReplaceTextPipe } from "./pipes/replace-text.pipe";
43
+ import { FileSizePipe } from "./pipes/filesize.pipe";
44
+ //UI/Validation
45
+ import { FormValidationSummaryComponent } from "./validation/form-validation-summary.component";
46
+ import { ItemValidationSummaryComponent } from "./validation/item-validation-summary.component";
47
+ import * as i0 from "@angular/core";
48
+ import * as i1 from "angular-froala-wysiwyg";
49
+ export const FroalaEditorModuleWithProviders = FroalaEditorModule.forRoot();
50
+ export const FroalaViewModuleWithProviders = FroalaViewModule.forRoot();
51
+ export class AnatolyUIModule {
52
+ }
53
+ AnatolyUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyUIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
54
+ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.6", ngImport: i0, type: AnatolyUIModule, declarations: [SubscribePlanButtonComponent,
55
+ UpgradePlanButtonComponent,
56
+ BuyAccessButtonComponent,
57
+ SignInButtonComponent,
58
+ SignUpButtonComponent,
59
+ SignOutButtonComponent,
60
+ ContentHeaderComponent,
61
+ SpinnerComponent,
62
+ LoadingComponent,
63
+ HtmlEditorComponent,
64
+ FormsHtmlEditorComponent,
65
+ //Directives
66
+ NativeElementDirective,
67
+ //Forms
68
+ ContactUsForm,
69
+ //Pipes
70
+ SafeHtmlPipe,
71
+ ReplaceTextPipe,
72
+ FileSizePipe,
73
+ //Validation
74
+ FormValidationSummaryComponent,
75
+ ItemValidationSummaryComponent], imports: [CommonModule,
76
+ ReactiveFormsModule,
77
+ FormsModule,
78
+ NgxCaptchaModule, i1.FroalaEditorModule, i1.FroalaViewModule], exports: [SubscribePlanButtonComponent,
79
+ UpgradePlanButtonComponent,
80
+ BuyAccessButtonComponent,
81
+ SignInButtonComponent,
82
+ SignUpButtonComponent,
83
+ SignOutButtonComponent,
84
+ ContentHeaderComponent,
85
+ SpinnerComponent,
86
+ LoadingComponent,
87
+ HtmlEditorComponent,
88
+ FormsHtmlEditorComponent,
89
+ //Directives
90
+ NativeElementDirective,
91
+ //Forms
92
+ ContactUsForm,
93
+ //Pipes
94
+ SafeHtmlPipe,
95
+ ReplaceTextPipe,
96
+ FileSizePipe,
97
+ //Validation
98
+ FormValidationSummaryComponent,
99
+ ItemValidationSummaryComponent] });
100
+ AnatolyUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyUIModule, imports: [CommonModule,
101
+ ReactiveFormsModule,
102
+ FormsModule,
103
+ NgxCaptchaModule,
104
+ FroalaEditorModuleWithProviders,
105
+ FroalaViewModuleWithProviders] });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: AnatolyUIModule, decorators: [{
107
+ type: NgModule,
108
+ args: [{
109
+ imports: [
110
+ CommonModule,
111
+ ReactiveFormsModule,
112
+ FormsModule,
113
+ NgxCaptchaModule,
114
+ FroalaEditorModuleWithProviders,
115
+ FroalaViewModuleWithProviders,
116
+ ],
117
+ exports: [
118
+ SubscribePlanButtonComponent,
119
+ UpgradePlanButtonComponent,
120
+ BuyAccessButtonComponent,
121
+ SignInButtonComponent,
122
+ SignUpButtonComponent,
123
+ SignOutButtonComponent,
124
+ ContentHeaderComponent,
125
+ SpinnerComponent,
126
+ LoadingComponent,
127
+ HtmlEditorComponent,
128
+ FormsHtmlEditorComponent,
129
+ //Directives
130
+ NativeElementDirective,
131
+ //Forms
132
+ ContactUsForm,
133
+ //Pipes
134
+ SafeHtmlPipe,
135
+ ReplaceTextPipe,
136
+ FileSizePipe,
137
+ //Validation
138
+ FormValidationSummaryComponent,
139
+ ItemValidationSummaryComponent,
140
+ ],
141
+ declarations: [
142
+ SubscribePlanButtonComponent,
143
+ UpgradePlanButtonComponent,
144
+ BuyAccessButtonComponent,
145
+ SignInButtonComponent,
146
+ SignUpButtonComponent,
147
+ SignOutButtonComponent,
148
+ ContentHeaderComponent,
149
+ SpinnerComponent,
150
+ LoadingComponent,
151
+ HtmlEditorComponent,
152
+ FormsHtmlEditorComponent,
153
+ //Directives
154
+ NativeElementDirective,
155
+ //Forms
156
+ ContactUsForm,
157
+ //Pipes
158
+ SafeHtmlPipe,
159
+ ReplaceTextPipe,
160
+ FileSizePipe,
161
+ //Validation
162
+ FormValidationSummaryComponent,
163
+ ItemValidationSummaryComponent,
164
+ ]
165
+ }]
166
+ }] });
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3VpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7RUFjRTtBQUVGLE1BQU07QUFDTixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRS9DLFFBQVE7QUFDUixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUk5RSxlQUFlO0FBQ2YsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDcEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFMUUsUUFBUTtBQUNSLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3JG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LG1CQUFtQjt3QkFDbkIsd0JBQXdCO3dCQUV4QixZQUFZO3dCQUNaLHNCQUFzQjt3QkFFdEIsT0FBTzt3QkFDUCxhQUFhO3dCQUViLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixlQUFlO3dCQUNmLFlBQVk7d0JBRVosWUFBWTt3QkFDWiw4QkFBOEI7d0JBQzlCLDhCQUE4QjtxQkFDL0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAyNiBKdW4gMjAyMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgTmd4Q2FwdGNoYU1vZHVsZSB9IGZyb20gJ25neC1jYXB0Y2hhJztcclxuXHJcbi8vRnJvYWxhXHJcbmltcG9ydCB7IEZyb2FsYUVkaXRvck1vZHVsZSwgRnJvYWxhVmlld01vZHVsZSB9IGZyb20gXCJhbmd1bGFyLWZyb2FsYS13eXNpd3lnXCI7XHJcbmV4cG9ydCBjb25zdCBGcm9hbGFFZGl0b3JNb2R1bGVXaXRoUHJvdmlkZXJzID0gRnJvYWxhRWRpdG9yTW9kdWxlLmZvclJvb3QoKTtcclxuZXhwb3J0IGNvbnN0IEZyb2FsYVZpZXdNb2R1bGVXaXRoUHJvdmlkZXJzID0gRnJvYWxhVmlld01vZHVsZS5mb3JSb290KCk7XHJcblxyXG4vL1VJL0NvbXBvbmVudHNcclxuaW1wb3J0IHsgU3Vic2NyaWJlUGxhbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmlsbGluZy9zdWJzY3JpYmUtcGxhbi1idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFVwZ3JhZGVQbGFuQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9iaWxsaW5nL3VwZ3JhZGUtcGxhbi1idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEJ1eUFjY2Vzc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmlsbGluZy9idXlhY2Nlc3MtYnV0dG9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTaWduSW5CdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2lkZW50aXR5L3NpZ25pbi1idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNpZ25VcEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvaWRlbnRpdHkvc2lnbnVwLWJ1dHRvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2lnbk91dEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvaWRlbnRpdHkvc2lnbm91dC1idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IENvbnRlbnRIZWFkZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbnRlbnQtaGVhZGVyL2NvbnRlbnQtaGVhZGVyLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTcGlubmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2xvYWRpbmcvbG9hZGluZy5jb21wb25lbnRcIjtcclxuXHJcbi8vRWRpdG9yXHJcbmltcG9ydCB7IEh0bWxFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2h0bWwtZWRpdG9yL2h0bWwtZWRpdG9yLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGb3Jtc0h0bWxFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2h0bWwtZWRpdG9yL2Zvcm1zLWh0bWwtZWRpdG9yLmNvbXBvbmVudFwiO1xyXG5cclxuLy9VSS9EaXJlY3RpdmVzXHJcbmltcG9ydCB7IE5hdGl2ZUVsZW1lbnREaXJlY3RpdmUgfSBmcm9tIFwiLi9kaXJlY3RpdmVzL25hdGl2ZS1lbGVtZW50LmRpcmVjdGl2ZVwiO1xyXG5cclxuLy9VSS9Gb3Jtc1xyXG5pbXBvcnQgeyBDb250YWN0VXNGb3JtIH0gZnJvbSBcIi4vZm9ybXMvY29udGFjdC11cy9jb250YWN0LXVzXCJcclxuXHJcbi8vVUkvUGlwZXNcclxuaW1wb3J0IHsgU2FmZUh0bWxQaXBlIH0gZnJvbSBcIi4vcGlwZXMvc2FmZUh0bWwucGlwZVwiO1xyXG5pbXBvcnQgeyBSZXBsYWNlVGV4dFBpcGUgfSBmcm9tIFwiLi9waXBlcy9yZXBsYWNlLXRleHQucGlwZVwiO1xyXG5pbXBvcnQgeyBGaWxlU2l6ZVBpcGUgfSBmcm9tIFwiLi9waXBlcy9maWxlc2l6ZS5waXBlXCI7XHJcblxyXG4vL1VJL1ZhbGlkYXRpb25cclxuaW1wb3J0IHsgRm9ybVZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vdmFsaWRhdGlvbi9mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgSXRlbVZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vdmFsaWRhdGlvbi9pdGVtLXZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnRcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTmd4Q2FwdGNoYU1vZHVsZSxcclxuICAgIEZyb2FsYUVkaXRvck1vZHVsZVdpdGhQcm92aWRlcnMsXHJcbiAgICBGcm9hbGFWaWV3TW9kdWxlV2l0aFByb3ZpZGVycyxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFN1YnNjcmliZVBsYW5CdXR0b25Db21wb25lbnQsXHJcbiAgICBVcGdyYWRlUGxhbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIEJ1eUFjY2Vzc0J1dHRvbkNvbXBvbmVudCxcclxuICAgIFNpZ25JbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFNpZ25VcEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFNpZ25PdXRCdXR0b25Db21wb25lbnQsXHJcbiAgICBDb250ZW50SGVhZGVyQ29tcG9uZW50LFxyXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcclxuICAgIExvYWRpbmdDb21wb25lbnQsXHJcbiAgICBIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG4gICAgRm9ybXNIdG1sRWRpdG9yQ29tcG9uZW50LFxyXG5cclxuICAgIC8vRGlyZWN0aXZlc1xyXG4gICAgTmF0aXZlRWxlbWVudERpcmVjdGl2ZSxcclxuXHJcbiAgICAvL0Zvcm1zXHJcbiAgICBDb250YWN0VXNGb3JtLFxyXG5cclxuICAgIC8vUGlwZXNcclxuICAgIFNhZmVIdG1sUGlwZSxcclxuICAgIFJlcGxhY2VUZXh0UGlwZSxcclxuICAgIEZpbGVTaXplUGlwZSxcclxuXHJcbiAgICAvL1ZhbGlkYXRpb25cclxuICAgIEZvcm1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCxcclxuICAgIEl0ZW1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU3Vic2NyaWJlUGxhbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFVwZ3JhZGVQbGFuQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQnV5QWNjZXNzQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgU2lnbkluQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgU2lnblVwQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgU2lnbk91dEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIENvbnRlbnRIZWFkZXJDb21wb25lbnQsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcclxuICAgIEh0bWxFZGl0b3JDb21wb25lbnQsXHJcbiAgICBGb3Jtc0h0bWxFZGl0b3JDb21wb25lbnQsXHJcblxyXG4gICAgLy9EaXJlY3RpdmVzXHJcbiAgICBOYXRpdmVFbGVtZW50RGlyZWN0aXZlLFxyXG5cclxuICAgIC8vRm9ybXNcclxuICAgIENvbnRhY3RVc0Zvcm0sXHJcblxyXG4gICAgLy9QaXBlc1xyXG4gICAgU2FmZUh0bWxQaXBlLFxyXG4gICAgUmVwbGFjZVRleHRQaXBlLFxyXG4gICAgRmlsZVNpemVQaXBlLFxyXG5cclxuICAgIC8vVmFsaWRhdGlvblxyXG4gICAgRm9ybVZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50LFxyXG4gICAgSXRlbVZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50LFxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFuYXRvbHlVSU1vZHVsZSB7XHJcbn1cclxuIl19
@@ -0,0 +1,67 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 7 Dec 2017
12
+
13
+ Version:
14
+ 1.0
15
+
16
+ Copyright (c) 2016-2022 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ // Node
20
+ import { Component, Input } from "@angular/core";
21
+ // App
22
+ import { ValidationSummaryComponent } from "./validation-summary.component";
23
+ import * as i0 from "@angular/core";
24
+ import * as i1 from "@angular/common";
25
+ export class FormValidationSummaryComponent extends ValidationSummaryComponent {
26
+ constructor() {
27
+ super();
28
+ this.visible = false;
29
+ this.customerrors = [];
30
+ /*
31
+ 0 - only FormValidation messages
32
+ 1 - only Custom messages
33
+ 2 - all
34
+ */
35
+ this.viewtype = 0;
36
+ }
37
+ getErrors() {
38
+ if (this.viewtype == 1) {
39
+ return this.customerrors;
40
+ }
41
+ let formValidationMessages = this.getFormValidationMessages();
42
+ if (this.viewtype == 0) {
43
+ return formValidationMessages;
44
+ }
45
+ var messages = [];
46
+ if (formValidationMessages.length > 0) {
47
+ messages.push(...formValidationMessages);
48
+ }
49
+ if (this.customerrors.length > 0) {
50
+ messages.push(...this.customerrors);
51
+ }
52
+ return messages;
53
+ }
54
+ }
55
+ FormValidationSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FormValidationSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
56
+ FormValidationSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.6", type: FormValidationSummaryComponent, selector: "anatoly-form-validation-summary", inputs: { visible: "visible", customerrors: "customerrors", viewtype: "viewtype" }, usesInheritance: true, ngImport: i0, template: "<div class=\"callout callout-danger\" *ngIf=\"visible\">\r\n <h6 class=\"box-title\">There are problems with the form</h6>\r\n <ul>\r\n <li *ngFor=\"let error of getErrors()\"><span>{{error}}</span></li>\r\n </ul>\r\n</div>\r\n\r\n", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.6", ngImport: i0, type: FormValidationSummaryComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: "anatoly-form-validation-summary", template: "<div class=\"callout callout-danger\" *ngIf=\"visible\">\r\n <h6 class=\"box-title\">There are problems with the form</h6>\r\n <ul>\r\n <li *ngFor=\"let error of getErrors()\"><span>{{error}}</span></li>\r\n </ul>\r\n</div>\r\n\r\n" }]
60
+ }], ctorParameters: function () { return []; }, propDecorators: { visible: [{
61
+ type: Input
62
+ }], customerrors: [{
63
+ type: Input
64
+ }], viewtype: [{
65
+ type: Input
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE1BQU07QUFDTixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBTTVFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSwwQkFBMEI7SUFXNUU7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQVhELFlBQU8sR0FBWSxLQUFLLENBQUM7UUFDekIsaUJBQVksR0FBYSxFQUFFLENBQUM7UUFFckM7Ozs7VUFJRTtRQUNPLGFBQVEsR0FBVyxDQUFDLENBQUM7SUFJOUIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztTQUMxQjtRQUVELElBQUksc0JBQXNCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO1FBRUQsSUFBSSxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksc0JBQXNCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNyQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztTQUMxQztRQUVELElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDckM7UUFFRCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDOzsySEFuQ1UsOEJBQThCOytHQUE5Qiw4QkFBOEIsa0xDN0IzQywrT0FPQTsyRkRzQmEsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLGlDQUFpQzswRUFJbEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDcgRGVjIDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBBcHBcclxuaW1wb3J0IHsgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgfSBmcm9tIFwiLi92YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhbmF0b2x5LWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQuaHRtbFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IGV4dGVuZHMgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjdXN0b21lcnJvcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIC8qXHJcbiAgICAwIC0gb25seSBGb3JtVmFsaWRhdGlvbiBtZXNzYWdlc1xyXG4gICAgMSAtIG9ubHkgQ3VzdG9tIG1lc3NhZ2VzXHJcbiAgICAyIC0gYWxsXHJcbiAgKi8gXHJcbiAgQElucHV0KCkgdmlld3R5cGU6IG51bWJlciA9IDA7IFxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvcnMoKSB7XHJcbiAgICBpZiAodGhpcy52aWV3dHlwZSA9PSAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmN1c3RvbWVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZm9ybVZhbGlkYXRpb25NZXNzYWdlcyA9IHRoaXMuZ2V0Rm9ybVZhbGlkYXRpb25NZXNzYWdlcygpO1xyXG4gICAgaWYgKHRoaXMudmlld3R5cGUgPT0gMCkge1xyXG4gICAgICByZXR1cm4gZm9ybVZhbGlkYXRpb25NZXNzYWdlcztcclxuICAgIH1cclxuXHJcbiAgICB2YXIgbWVzc2FnZXMgPSBbXTtcclxuICAgIGlmIChmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbWVzc2FnZXMucHVzaCguLi5mb3JtVmFsaWRhdGlvbk1lc3NhZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jdXN0b21lcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKC4uLnRoaXMuY3VzdG9tZXJyb3JzKTtcclxuICAgIH0gICBcclxuXHJcbiAgICByZXR1cm4gbWVzc2FnZXM7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYWxsb3V0IGNhbGxvdXQtZGFuZ2VyXCIgKm5nSWY9XCJ2aXNpYmxlXCI+XHJcbiAgPGg2IGNsYXNzPVwiYm94LXRpdGxlXCI+VGhlcmUgYXJlIHByb2JsZW1zIHdpdGggdGhlIGZvcm08L2g2PlxyXG4gIDx1bD5cclxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZ2V0RXJyb3JzKClcIj48c3Bhbj57e2Vycm9yfX08L3NwYW4+PC9saT5cclxuICA8L3VsPlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==