@osovitny/anatoly 2.1.13 → 2.14.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) 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/esm2020/lib/core/convert.mjs +62 -0
  5. package/esm2020/lib/core/core.module.mjs +72 -0
  6. package/esm2020/lib/core/go/base-go.service.mjs +41 -0
  7. package/esm2020/lib/core/guid.mjs +22 -0
  8. package/esm2020/lib/core/interceptors/httpInterceptor.mjs +108 -0
  9. package/esm2020/lib/core/localization/localization.module.mjs +47 -0
  10. package/esm2020/lib/core/localization/localization.service.mjs +185 -0
  11. package/esm2020/lib/core/localization/localizationSettings.module.mjs +88 -0
  12. package/esm2020/lib/core/localization/localize.pipe.mjs +78 -0
  13. package/esm2020/lib/core/logging/globalErrorHandler.mjs +44 -0
  14. package/esm2020/lib/core/logging/logging.service.mjs +39 -0
  15. package/esm2020/lib/core/notifications/services/notification-service.mjs +228 -0
  16. package/esm2020/lib/core/services/appcontext.service.mjs +118 -0
  17. package/esm2020/lib/core/services/dm.service.mjs +72 -0
  18. package/esm2020/lib/core/services/google-analytics.service.mjs +54 -0
  19. package/{esm2015/lib/core/services/idle.service.js → esm2020/lib/core/services/idle.service.mjs} +9 -7
  20. package/{esm2015/lib/core/services/loading.service.js → esm2020/lib/core/services/loading.service.mjs} +9 -8
  21. package/esm2020/lib/core/services/web-storage.service.mjs +69 -0
  22. package/esm2020/lib/core/subs.mjs +31 -0
  23. package/esm2020/lib/core/utils.mjs +82 -0
  24. package/esm2020/lib/data/base/base-api.service.mjs +89 -0
  25. package/esm2020/lib/data/base/grid/base-grid-edit.service.mjs +77 -0
  26. package/esm2020/lib/data/base/grid/base-grid-read.service.mjs +62 -0
  27. package/esm2020/lib/data/data.module.mjs +51 -0
  28. package/esm2020/lib/data/services/billing-api.service.mjs +65 -0
  29. package/esm2020/lib/data/services/notifications/notifications-api-service.mjs +43 -0
  30. package/esm2020/lib/ui/components/base-edit.component.mjs +143 -0
  31. package/esm2020/lib/ui/components/base.component.mjs +47 -0
  32. package/esm2020/lib/ui/components/base.dialog.mjs +49 -0
  33. package/esm2020/lib/ui/components/billing/buyaccess-button.component.mjs +69 -0
  34. package/esm2020/lib/ui/components/billing/subscribe-plan-button.component.mjs +63 -0
  35. package/esm2020/lib/ui/components/billing/upgrade-plan-button.component.mjs +53 -0
  36. package/esm2020/lib/ui/components/content-header/content-header.component.mjs +37 -0
  37. package/esm2020/lib/ui/components/html-editor/base-html-editor.component.mjs +111 -0
  38. package/esm2020/lib/ui/components/html-editor/forms-html-editor.component.mjs +48 -0
  39. package/esm2020/lib/ui/components/html-editor/html-editor.component.mjs +52 -0
  40. package/esm2020/lib/ui/components/identity/signin-button.component.mjs +32 -0
  41. package/esm2020/lib/ui/components/identity/signout-button.component.mjs +32 -0
  42. package/esm2020/lib/ui/components/identity/signup-button.component.mjs +31 -0
  43. package/esm2020/lib/ui/components/loading/loading.component.mjs +48 -0
  44. package/esm2020/lib/ui/components/spinner/spinner.component.mjs +74 -0
  45. package/esm2020/lib/ui/directives/native-element.directive.mjs +41 -0
  46. package/esm2020/lib/ui/pipes/filesize.pipe.mjs +45 -0
  47. package/esm2020/lib/ui/pipes/replace-text.pipe.mjs +40 -0
  48. package/esm2020/lib/ui/pipes/safeHtml.pipe.mjs +37 -0
  49. package/esm2020/lib/ui/ui.module.mjs +155 -0
  50. package/esm2020/lib/ui/validation/form-validation-summary.component.mjs +66 -0
  51. package/esm2020/lib/ui/validation/item-validation-summary.component.mjs +39 -0
  52. package/esm2020/lib/ui/validation/validation-summary.component.mjs +128 -0
  53. package/fesm2015/{osovitny-anatoly.js → osovitny-anatoly.mjs} +823 -765
  54. package/fesm2015/osovitny-anatoly.mjs.map +1 -0
  55. package/fesm2020/osovitny-anatoly.mjs +3496 -0
  56. package/fesm2020/osovitny-anatoly.mjs.map +1 -0
  57. package/{osovitny-anatoly.d.ts → index.d.ts} +1 -0
  58. package/lib/core/core.module.d.ts +5 -0
  59. package/lib/core/go/base-go.service.d.ts +3 -0
  60. package/lib/core/interceptors/httpInterceptor.d.ts +3 -0
  61. package/lib/core/localization/localization.module.d.ts +6 -0
  62. package/lib/core/localization/localization.service.d.ts +3 -0
  63. package/lib/core/localization/localizationSettings.module.d.ts +5 -0
  64. package/lib/core/localization/localize.pipe.d.ts +3 -0
  65. package/lib/core/logging/globalErrorHandler.d.ts +3 -0
  66. package/lib/core/logging/logging.service.d.ts +3 -0
  67. package/lib/core/notifications/services/notification-service.d.ts +3 -0
  68. package/lib/core/services/appcontext.service.d.ts +5 -2
  69. package/lib/core/services/dm.service.d.ts +3 -0
  70. package/lib/core/services/google-analytics.service.d.ts +3 -0
  71. package/lib/core/services/idle.service.d.ts +3 -0
  72. package/lib/core/services/loading.service.d.ts +3 -0
  73. package/lib/core/services/web-storage.service.d.ts +5 -0
  74. package/lib/data/base/base-api.service.d.ts +3 -0
  75. package/lib/data/base/grid/base-grid-edit.service.d.ts +3 -0
  76. package/lib/data/base/grid/base-grid-read.service.d.ts +3 -0
  77. package/lib/data/data.module.d.ts +5 -0
  78. package/lib/data/services/billing-api.service.d.ts +3 -0
  79. package/lib/data/services/notifications/notifications-api-service.d.ts +3 -0
  80. package/lib/ui/components/base-edit.component.d.ts +5 -2
  81. package/lib/ui/components/base.component.d.ts +3 -0
  82. package/lib/ui/components/base.dialog.d.ts +3 -0
  83. package/lib/ui/components/billing/buyaccess-button.component.d.ts +3 -0
  84. package/lib/ui/components/billing/subscribe-plan-button.component.d.ts +3 -0
  85. package/lib/ui/components/billing/upgrade-plan-button.component.d.ts +3 -0
  86. package/lib/ui/components/content-header/content-header.component.d.ts +3 -0
  87. package/lib/ui/components/html-editor/base-html-editor.component.d.ts +3 -0
  88. package/lib/ui/components/html-editor/forms-html-editor.component.d.ts +3 -0
  89. package/lib/ui/components/html-editor/html-editor.component.d.ts +3 -0
  90. package/lib/ui/components/identity/signin-button.component.d.ts +3 -0
  91. package/lib/ui/components/identity/signout-button.component.d.ts +3 -0
  92. package/lib/ui/components/identity/signup-button.component.d.ts +3 -0
  93. package/lib/ui/components/loading/loading.component.d.ts +3 -0
  94. package/lib/ui/components/spinner/spinner.component.d.ts +3 -0
  95. package/lib/ui/directives/native-element.directive.d.ts +3 -0
  96. package/lib/ui/pipes/filesize.pipe.d.ts +3 -0
  97. package/lib/ui/pipes/replace-text.pipe.d.ts +3 -0
  98. package/lib/ui/pipes/safeHtml.pipe.d.ts +3 -0
  99. package/lib/ui/ui.module.d.ts +24 -0
  100. package/lib/ui/validation/form-validation-summary.component.d.ts +3 -0
  101. package/lib/ui/validation/item-validation-summary.component.d.ts +3 -0
  102. package/lib/ui/validation/validation-summary.component.d.ts +3 -0
  103. package/package.json +23 -11
  104. package/bundles/osovitny-anatoly.umd.js +0 -3696
  105. package/bundles/osovitny-anatoly.umd.js.map +0 -1
  106. package/esm2015/lib/core/convert.js +0 -65
  107. package/esm2015/lib/core/core.module.js +0 -43
  108. package/esm2015/lib/core/go/base-go.service.js +0 -42
  109. package/esm2015/lib/core/guid.js +0 -25
  110. package/esm2015/lib/core/interceptors/httpInterceptor.js +0 -109
  111. package/esm2015/lib/core/localization/localization.module.js +0 -41
  112. package/esm2015/lib/core/localization/localization.service.js +0 -187
  113. package/esm2015/lib/core/localization/localizationSettings.module.js +0 -78
  114. package/esm2015/lib/core/localization/localize.pipe.js +0 -78
  115. package/esm2015/lib/core/logging/globalErrorHandler.js +0 -44
  116. package/esm2015/lib/core/logging/logging.service.js +0 -38
  117. package/esm2015/lib/core/notifications/services/notification-service.js +0 -230
  118. package/esm2015/lib/core/services/appcontext.service.js +0 -118
  119. package/esm2015/lib/core/services/dm.service.js +0 -74
  120. package/esm2015/lib/core/services/google-analytics.service.js +0 -53
  121. package/esm2015/lib/core/services/web-storage.service.js +0 -66
  122. package/esm2015/lib/core/subs.js +0 -34
  123. package/esm2015/lib/core/utils.js +0 -84
  124. package/esm2015/lib/data/base/base-api.service.js +0 -89
  125. package/esm2015/lib/data/base/grid/base-grid-edit.service.js +0 -77
  126. package/esm2015/lib/data/base/grid/base-grid-read.service.js +0 -62
  127. package/esm2015/lib/data/data.module.js +0 -43
  128. package/esm2015/lib/data/services/billing-api.service.js +0 -65
  129. package/esm2015/lib/data/services/notifications/notifications-api-service.js +0 -45
  130. package/esm2015/lib/ui/components/base-edit.component.js +0 -142
  131. package/esm2015/lib/ui/components/base.component.js +0 -43
  132. package/esm2015/lib/ui/components/base.dialog.js +0 -47
  133. package/esm2015/lib/ui/components/billing/buyaccess-button.component.js +0 -71
  134. package/esm2015/lib/ui/components/billing/subscribe-plan-button.component.js +0 -63
  135. package/esm2015/lib/ui/components/billing/upgrade-plan-button.component.js +0 -54
  136. package/esm2015/lib/ui/components/content-header/content-header.component.js +0 -37
  137. package/esm2015/lib/ui/components/html-editor/base-html-editor.component.js +0 -108
  138. package/esm2015/lib/ui/components/html-editor/forms-html-editor.component.js +0 -44
  139. package/esm2015/lib/ui/components/html-editor/html-editor.component.js +0 -51
  140. package/esm2015/lib/ui/components/identity/signin-button.component.js +0 -33
  141. package/esm2015/lib/ui/components/identity/signout-button.component.js +0 -33
  142. package/esm2015/lib/ui/components/identity/signup-button.component.js +0 -31
  143. package/esm2015/lib/ui/components/loading/loading.component.js +0 -49
  144. package/esm2015/lib/ui/components/spinner/spinner.component.js +0 -73
  145. package/esm2015/lib/ui/directives/native-element.directive.js +0 -41
  146. package/esm2015/lib/ui/pipes/filesize.pipe.js +0 -41
  147. package/esm2015/lib/ui/pipes/replace-text.pipe.js +0 -36
  148. package/esm2015/lib/ui/pipes/safeHtml.pipe.js +0 -36
  149. package/esm2015/lib/ui/ui.module.js +0 -105
  150. package/esm2015/lib/ui/validation/form-validation-summary.component.js +0 -64
  151. package/esm2015/lib/ui/validation/item-validation-summary.component.js +0 -38
  152. package/esm2015/lib/ui/validation/validation-summary.component.js +0 -126
  153. package/fesm2015/osovitny-anatoly.js.map +0 -1
  154. package/osovitny-anatoly.metadata.json +0 -1
  155. /package/{esm2015/lib/core/consts/settings.js → esm2020/lib/core/consts/settings.mjs} +0 -0
  156. /package/{esm2015/lib/core/consts/urls.js → esm2020/lib/core/consts/urls.mjs} +0 -0
  157. /package/{esm2015/lib/core/guards/once-import.guard.js → esm2020/lib/core/guards/once-import.guard.mjs} +0 -0
  158. /package/{esm2015/lib/core/localization/utils.js → esm2020/lib/core/localization/utils.mjs} +0 -0
  159. /package/{esm2015/lib/core/notifications/alerts.js → esm2020/lib/core/notifications/alerts.mjs} +0 -0
  160. /package/{esm2015/lib/core/notifications/interfaces/notification.js → esm2020/lib/core/notifications/interfaces/notification.mjs} +0 -0
  161. /package/{esm2015/lib/data/consts.js → esm2020/lib/data/consts.mjs} +0 -0
  162. /package/{esm2015/lib/ui/components/html-editor/html-editor.defaultoptions.js → esm2020/lib/ui/components/html-editor/html-editor.defaultoptions.mjs} +0 -0
  163. /package/{esm2015/osovitny-anatoly.js → esm2020/osovitny-anatoly.mjs} +0 -0
  164. /package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
@@ -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-2021 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.5", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe });
32
+ SafeHtmlPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: SafeHtmlPipe, name: "safeHtml" });
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FmZUh0bWwucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9waXBlcy9zYWZlSHRtbC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUMsSUFBSSxFQUFnQixNQUFNLGVBQWUsQ0FBQzs7O0FBS2xELE1BQU0sT0FBTyxZQUFZO0lBQ3ZCLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7SUFBSSxDQUFDO0lBRWhELFNBQVMsQ0FBQyxLQUFLO1FBQ2IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O3lHQUxVLFlBQVk7dUdBQVosWUFBWTsyRkFBWixZQUFZO2tCQUR4QixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI3IE9jdCAyMDE5XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcblxyXG5AUGlwZSh7IG5hbWU6ICdzYWZlSHRtbCcgfSlcclxuZXhwb3J0IGNsYXNzIFNhZmVIdG1sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVkOiBEb21TYW5pdGl6ZXIpIHsgfVxyXG5cclxuICB0cmFuc2Zvcm0odmFsdWUpIHtcclxuICAgIHJldHVybiB0aGlzLnNhbml0aXplZC5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh2YWx1ZSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,155 @@
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-2021 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ //Node
20
+ import { NgModule } from "@angular/core";
21
+ import { CommonModule } from "@angular/common";
22
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
23
+ //Froala
24
+ import { FroalaEditorModule, FroalaViewModule } from "angular-froala-wysiwyg";
25
+ //Components
26
+ import { SubscribePlanButtonComponent } from "./components/billing/subscribe-plan-button.component";
27
+ import { UpgradePlanButtonComponent } from "./components/billing/upgrade-plan-button.component";
28
+ import { BuyAccessButtonComponent } from "./components/billing/buyaccess-button.component";
29
+ import { SignInButtonComponent } from "./components/identity/signin-button.component";
30
+ import { SignUpButtonComponent } from "./components/identity/signup-button.component";
31
+ import { SignOutButtonComponent } from "./components/identity/signout-button.component";
32
+ import { ContentHeaderComponent } from "./components/content-header/content-header.component";
33
+ import { SpinnerComponent } from "./components/spinner/spinner.component";
34
+ import { LoadingComponent } from "./components/loading/loading.component";
35
+ import { NativeElementDirective } from "./directives/native-element.directive";
36
+ //Editor
37
+ import { HtmlEditorComponent } from "./components/html-editor/html-editor.component";
38
+ import { FormsHtmlEditorComponent } from "./components/html-editor/forms-html-editor.component";
39
+ //Validation
40
+ import { FormValidationSummaryComponent } from "./validation/form-validation-summary.component";
41
+ import { ItemValidationSummaryComponent } from "./validation/item-validation-summary.component";
42
+ //Pipes
43
+ import { SafeHtmlPipe } from "./pipes/safeHtml.pipe";
44
+ import { ReplaceTextPipe } from "./pipes/replace-text.pipe";
45
+ import { FileSizePipe } from "./pipes/filesize.pipe";
46
+ import * as i0 from "@angular/core";
47
+ import * as i1 from "angular-froala-wysiwyg";
48
+ export const FroalaEditorModuleWithProviders = FroalaEditorModule.forRoot();
49
+ export const FroalaViewModuleWithProviders = FroalaViewModule.forRoot();
50
+ export class AnatolyUIModule {
51
+ }
52
+ AnatolyUIModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyUIModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
53
+ AnatolyUIModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.5", ngImport: i0, type: AnatolyUIModule, declarations: [SubscribePlanButtonComponent,
54
+ UpgradePlanButtonComponent,
55
+ BuyAccessButtonComponent,
56
+ SignInButtonComponent,
57
+ SignUpButtonComponent,
58
+ SignOutButtonComponent,
59
+ ContentHeaderComponent,
60
+ SpinnerComponent,
61
+ LoadingComponent,
62
+ NativeElementDirective,
63
+ //Editor
64
+ HtmlEditorComponent,
65
+ FormsHtmlEditorComponent,
66
+ //Validation
67
+ FormValidationSummaryComponent,
68
+ ItemValidationSummaryComponent,
69
+ //Pipe
70
+ SafeHtmlPipe,
71
+ ReplaceTextPipe,
72
+ FileSizePipe], imports: [CommonModule,
73
+ ReactiveFormsModule,
74
+ FormsModule, i1.FroalaEditorModule, i1.FroalaViewModule], exports: [SubscribePlanButtonComponent,
75
+ UpgradePlanButtonComponent,
76
+ BuyAccessButtonComponent,
77
+ SignInButtonComponent,
78
+ SignUpButtonComponent,
79
+ SignOutButtonComponent,
80
+ ContentHeaderComponent,
81
+ SpinnerComponent,
82
+ LoadingComponent,
83
+ NativeElementDirective,
84
+ //Editor
85
+ HtmlEditorComponent,
86
+ FormsHtmlEditorComponent,
87
+ //Validation
88
+ FormValidationSummaryComponent,
89
+ ItemValidationSummaryComponent,
90
+ //Pipe
91
+ SafeHtmlPipe,
92
+ ReplaceTextPipe,
93
+ FileSizePipe] });
94
+ AnatolyUIModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyUIModule, imports: [CommonModule,
95
+ ReactiveFormsModule,
96
+ FormsModule,
97
+ FroalaEditorModuleWithProviders,
98
+ FroalaViewModuleWithProviders] });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: AnatolyUIModule, decorators: [{
100
+ type: NgModule,
101
+ args: [{
102
+ imports: [
103
+ CommonModule,
104
+ ReactiveFormsModule,
105
+ FormsModule,
106
+ FroalaEditorModuleWithProviders,
107
+ FroalaViewModuleWithProviders,
108
+ ],
109
+ exports: [
110
+ SubscribePlanButtonComponent,
111
+ UpgradePlanButtonComponent,
112
+ BuyAccessButtonComponent,
113
+ SignInButtonComponent,
114
+ SignUpButtonComponent,
115
+ SignOutButtonComponent,
116
+ ContentHeaderComponent,
117
+ SpinnerComponent,
118
+ LoadingComponent,
119
+ NativeElementDirective,
120
+ //Editor
121
+ HtmlEditorComponent,
122
+ FormsHtmlEditorComponent,
123
+ //Validation
124
+ FormValidationSummaryComponent,
125
+ ItemValidationSummaryComponent,
126
+ //Pipe
127
+ SafeHtmlPipe,
128
+ ReplaceTextPipe,
129
+ FileSizePipe,
130
+ ],
131
+ declarations: [
132
+ SubscribePlanButtonComponent,
133
+ UpgradePlanButtonComponent,
134
+ BuyAccessButtonComponent,
135
+ SignInButtonComponent,
136
+ SignUpButtonComponent,
137
+ SignOutButtonComponent,
138
+ ContentHeaderComponent,
139
+ SpinnerComponent,
140
+ LoadingComponent,
141
+ NativeElementDirective,
142
+ //Editor
143
+ HtmlEditorComponent,
144
+ FormsHtmlEditorComponent,
145
+ //Validation
146
+ FormValidationSummaryComponent,
147
+ ItemValidationSummaryComponent,
148
+ //Pipe
149
+ SafeHtmlPipe,
150
+ ReplaceTextPipe,
151
+ FileSizePipe,
152
+ ]
153
+ }]
154
+ }] });
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWkubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3VpLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFpQkU7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWxFLFFBQVE7QUFDUixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUk5RSxZQUFZO0FBQ1osT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDcEcsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDaEcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDM0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDdEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFeEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDOUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDMUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFL0UsUUFBUTtBQUNSLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFD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bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDI2IEp1biAyMDIwXHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vL05vZGVcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vL0Zyb2FsYVxyXG5pbXBvcnQgeyBGcm9hbGFFZGl0b3JNb2R1bGUsIEZyb2FsYVZpZXdNb2R1bGUgfSBmcm9tIFwiYW5ndWxhci1mcm9hbGEtd3lzaXd5Z1wiO1xyXG5leHBvcnQgY29uc3QgRnJvYWxhRWRpdG9yTW9kdWxlV2l0aFByb3ZpZGVycyA9IEZyb2FsYUVkaXRvck1vZHVsZS5mb3JSb290KCk7XHJcbmV4cG9ydCBjb25zdCBGcm9hbGFWaWV3TW9kdWxlV2l0aFByb3ZpZGVycyA9IEZyb2FsYVZpZXdNb2R1bGUuZm9yUm9vdCgpO1xyXG5cclxuLy9Db21wb25lbnRzXHJcbmltcG9ydCB7IFN1YnNjcmliZVBsYW5CdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JpbGxpbmcvc3Vic2NyaWJlLXBsYW4tYnV0dG9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBVcGdyYWRlUGxhbkJ1dHRvbkNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvYmlsbGluZy91cGdyYWRlLXBsYW4tYnV0dG9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBCdXlBY2Nlc3NCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2JpbGxpbmcvYnV5YWNjZXNzLWJ1dHRvbi5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgU2lnbkluQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4vY29tcG9uZW50cy9pZGVudGl0eS9zaWduaW4tYnV0dG9uLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBTaWduVXBCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2lkZW50aXR5L3NpZ251cC1idXR0b24uY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNpZ25PdXRCdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2lkZW50aXR5L3NpZ25vdXQtYnV0dG9uLmNvbXBvbmVudFwiO1xyXG5cclxuaW1wb3J0IHsgQ29udGVudEhlYWRlckNvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvY29udGVudC1oZWFkZXIvY29udGVudC1oZWFkZXIuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IFNwaW5uZXJDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL3NwaW5uZXIvc3Bpbm5lci5jb21wb25lbnRcIjtcclxuaW1wb3J0IHsgTG9hZGluZ0NvbXBvbmVudCB9IGZyb20gXCIuL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBOYXRpdmVFbGVtZW50RGlyZWN0aXZlIH0gZnJvbSBcIi4vZGlyZWN0aXZlcy9uYXRpdmUtZWxlbWVudC5kaXJlY3RpdmVcIjtcclxuXHJcbi8vRWRpdG9yXHJcbmltcG9ydCB7IEh0bWxFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2h0bWwtZWRpdG9yL2h0bWwtZWRpdG9yLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBGb3Jtc0h0bWxFZGl0b3JDb21wb25lbnQgfSBmcm9tIFwiLi9jb21wb25lbnRzL2h0bWwtZWRpdG9yL2Zvcm1zLWh0bWwtZWRpdG9yLmNvbXBvbmVudFwiO1xyXG5cclxuLy9WYWxpZGF0aW9uXHJcbmltcG9ydCB7IEZvcm1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gXCIuL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50XCI7XHJcbmltcG9ydCB7IEl0ZW1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gXCIuL3ZhbGlkYXRpb24vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50XCI7XHJcblxyXG4vL1BpcGVzXHJcbmltcG9ydCB7IFNhZmVIdG1sUGlwZSB9IGZyb20gXCIuL3BpcGVzL3NhZmVIdG1sLnBpcGVcIjtcclxuaW1wb3J0IHsgUmVwbGFjZVRleHRQaXBlIH0gZnJvbSBcIi4vcGlwZXMvcmVwbGFjZS10ZXh0LnBpcGVcIjtcclxuaW1wb3J0IHsgRmlsZVNpemVQaXBlIH0gZnJvbSBcIi4vcGlwZXMvZmlsZXNpemUucGlwZVwiO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBGcm9hbGFFZGl0b3JNb2R1bGVXaXRoUHJvdmlkZXJzLFxyXG4gICAgRnJvYWxhVmlld01vZHVsZVdpdGhQcm92aWRlcnMsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTdWJzY3JpYmVQbGFuQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgVXBncmFkZVBsYW5CdXR0b25Db21wb25lbnQsXHJcbiAgICBCdXlBY2Nlc3NCdXR0b25Db21wb25lbnQsXHJcbiAgICBTaWduSW5CdXR0b25Db21wb25lbnQsXHJcbiAgICBTaWduVXBCdXR0b25Db21wb25lbnQsXHJcbiAgICBTaWduT3V0QnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQ29udGVudEhlYWRlckNvbXBvbmVudCxcclxuICAgIFNwaW5uZXJDb21wb25lbnQsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgTmF0aXZlRWxlbWVudERpcmVjdGl2ZSxcclxuXHJcbiAgICAvL0VkaXRvclxyXG4gICAgSHRtbEVkaXRvckNvbXBvbmVudCxcclxuICAgIEZvcm1zSHRtbEVkaXRvckNvbXBvbmVudCxcclxuXHJcbiAgICAvL1ZhbGlkYXRpb25cclxuICAgIEZvcm1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCxcclxuICAgIEl0ZW1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCxcclxuXHJcbiAgICAvL1BpcGVcclxuICAgIFNhZmVIdG1sUGlwZSxcclxuICAgIFJlcGxhY2VUZXh0UGlwZSxcclxuICAgIEZpbGVTaXplUGlwZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogW1xyXG4gICAgU3Vic2NyaWJlUGxhbkJ1dHRvbkNvbXBvbmVudCxcclxuICAgIFVwZ3JhZGVQbGFuQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgQnV5QWNjZXNzQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgU2lnbkluQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgU2lnblVwQnV0dG9uQ29tcG9uZW50LFxyXG4gICAgU2lnbk91dEJ1dHRvbkNvbXBvbmVudCxcclxuICAgIENvbnRlbnRIZWFkZXJDb21wb25lbnQsXHJcbiAgICBTcGlubmVyQ29tcG9uZW50LFxyXG4gICAgTG9hZGluZ0NvbXBvbmVudCxcclxuICAgIE5hdGl2ZUVsZW1lbnREaXJlY3RpdmUsXHJcblxyXG4gICAgLy9FZGl0b3JcclxuICAgIEh0bWxFZGl0b3JDb21wb25lbnQsXHJcbiAgICBGb3Jtc0h0bWxFZGl0b3JDb21wb25lbnQsXHJcblxyXG4gICAgLy9WYWxpZGF0aW9uXHJcbiAgICBGb3JtVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQsXHJcbiAgICBJdGVtVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQsXHJcblxyXG4gICAgLy9QaXBlXHJcbiAgICBTYWZlSHRtbFBpcGUsXHJcbiAgICBSZXBsYWNlVGV4dFBpcGUsXHJcbiAgICBGaWxlU2l6ZVBpcGUsXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQW5hdG9seVVJTW9kdWxlIHtcclxufVxyXG4iXX0=
@@ -0,0 +1,66 @@
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-2021 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ // Node
20
+ import { Component, Input } from "@angular/core";
21
+ import { ValidationSummaryComponent } from "./validation-summary.component";
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "@angular/common";
24
+ export class FormValidationSummaryComponent extends ValidationSummaryComponent {
25
+ constructor() {
26
+ super();
27
+ this.visible = false;
28
+ this.customerrors = [];
29
+ /*
30
+ 0 - only FormValidation messages
31
+ 1 - only Custom messages
32
+ 2 - all
33
+ */
34
+ this.viewtype = 0;
35
+ }
36
+ getErrors() {
37
+ if (this.viewtype == 1) {
38
+ return this.customerrors;
39
+ }
40
+ let formValidationMessages = this.getFormValidationMessages();
41
+ if (this.viewtype == 0) {
42
+ return formValidationMessages;
43
+ }
44
+ var messages = [];
45
+ if (formValidationMessages.length > 0) {
46
+ messages.push(...formValidationMessages);
47
+ }
48
+ if (this.customerrors.length > 0) {
49
+ messages.push(...this.customerrors);
50
+ }
51
+ return messages;
52
+ }
53
+ }
54
+ FormValidationSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FormValidationSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
55
+ FormValidationSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", 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"] }] });
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: FormValidationSummaryComponent, decorators: [{
57
+ type: Component,
58
+ 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" }]
59
+ }], ctorParameters: function () { return []; }, propDecorators: { visible: [{
60
+ type: Input
61
+ }], customerrors: [{
62
+ type: Input
63
+ }], viewtype: [{
64
+ type: Input
65
+ }] } });
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFNNUUsTUFBTSxPQUFPLDhCQUErQixTQUFRLDBCQUEwQjtJQVc1RTtRQUNFLEtBQUssRUFBRSxDQUFDO1FBWEQsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixpQkFBWSxHQUFhLEVBQUUsQ0FBQztRQUVyQzs7OztVQUlFO1FBQ08sYUFBUSxHQUFXLENBQUMsQ0FBQztJQUk5QixDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzFCO1FBRUQsSUFBSSxzQkFBc0IsR0FBRyxJQUFJLENBQUMseUJBQXlCLEVBQUUsQ0FBQztRQUM5RCxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sc0JBQXNCLENBQUM7U0FDL0I7UUFFRCxJQUFJLFFBQVEsR0FBRyxFQUFFLENBQUM7UUFDbEIsSUFBSSxzQkFBc0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO1NBQzFDO1FBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDaEMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7OzJIQW5DVSw4QkFBOEI7K0dBQTlCLDhCQUE4QixrTEMzQjNDLCtPQU9BOzJGRG9CYSw4QkFBOEI7a0JBSjFDLFNBQVM7K0JBQ0UsaUNBQWlDOzBFQUlsQyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFPRyxRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgNyBEZWMgMjAxN1xyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgfSBmcm9tIFwiLi92YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhbmF0b2x5LWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9mb3JtLXZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQuaHRtbFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IGV4dGVuZHMgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBjdXN0b21lcnJvcnM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIC8qXHJcbiAgICAwIC0gb25seSBGb3JtVmFsaWRhdGlvbiBtZXNzYWdlc1xyXG4gICAgMSAtIG9ubHkgQ3VzdG9tIG1lc3NhZ2VzXHJcbiAgICAyIC0gYWxsXHJcbiAgKi8gXHJcbiAgQElucHV0KCkgdmlld3R5cGU6IG51bWJlciA9IDA7IFxyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRFcnJvcnMoKSB7XHJcbiAgICBpZiAodGhpcy52aWV3dHlwZSA9PSAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmN1c3RvbWVycm9ycztcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZm9ybVZhbGlkYXRpb25NZXNzYWdlcyA9IHRoaXMuZ2V0Rm9ybVZhbGlkYXRpb25NZXNzYWdlcygpO1xyXG4gICAgaWYgKHRoaXMudmlld3R5cGUgPT0gMCkge1xyXG4gICAgICByZXR1cm4gZm9ybVZhbGlkYXRpb25NZXNzYWdlcztcclxuICAgIH1cclxuXHJcbiAgICB2YXIgbWVzc2FnZXMgPSBbXTtcclxuICAgIGlmIChmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzLmxlbmd0aCA+IDApIHtcclxuICAgICAgbWVzc2FnZXMucHVzaCguLi5mb3JtVmFsaWRhdGlvbk1lc3NhZ2VzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jdXN0b21lcnJvcnMubGVuZ3RoID4gMCkge1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKC4uLnRoaXMuY3VzdG9tZXJyb3JzKTtcclxuICAgIH0gICBcclxuXHJcbiAgICByZXR1cm4gbWVzc2FnZXM7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYWxsb3V0IGNhbGxvdXQtZGFuZ2VyXCIgKm5nSWY9XCJ2aXNpYmxlXCI+XHJcbiAgPGg2IGNsYXNzPVwiYm94LXRpdGxlXCI+VGhlcmUgYXJlIHByb2JsZW1zIHdpdGggdGhlIGZvcm08L2g2PlxyXG4gIDx1bD5cclxuICAgIDxsaSAqbmdGb3I9XCJsZXQgZXJyb3Igb2YgZ2V0RXJyb3JzKClcIj48c3Bhbj57e2Vycm9yfX08L3NwYW4+PC9saT5cclxuICA8L3VsPlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
@@ -0,0 +1,39 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 6 Dec 2017
12
+
13
+ Version:
14
+ 1.0
15
+
16
+ Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ // Node
20
+ import { Component, Input } from "@angular/core";
21
+ import { ValidationSummaryComponent } from "./validation-summary.component";
22
+ import * as i0 from "@angular/core";
23
+ import * as i1 from "@angular/common";
24
+ export class ItemValidationSummaryComponent extends ValidationSummaryComponent {
25
+ constructor() {
26
+ super();
27
+ }
28
+ }
29
+ ItemValidationSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ItemValidationSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
+ ItemValidationSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ItemValidationSummaryComponent, selector: "anatoly-item-validation-summary", inputs: { controlName: "controlName", controlTitle: "controlTitle" }, usesInheritance: true, ngImport: i0, template: "<ul class=\"list-unstyled\" *ngIf=\"isControlInvalid(controlName)\">\r\n <li *ngFor=\"let error of getValidationMessages(formGroup.get(controlName), controlTitle)\">\r\n <span class=\"help-block\">{{ error }}</span>\r\n </li>\r\n</ul>\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"] }] });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ItemValidationSummaryComponent, decorators: [{
32
+ type: Component,
33
+ args: [{ selector: "anatoly-item-validation-summary", template: "<ul class=\"list-unstyled\" *ngIf=\"isControlInvalid(controlName)\">\r\n <li *ngFor=\"let error of getValidationMessages(formGroup.get(controlName), controlTitle)\">\r\n <span class=\"help-block\">{{ error }}</span>\r\n </li>\r\n</ul>\r\n\r\n" }]
34
+ }], ctorParameters: function () { return []; }, propDecorators: { controlName: [{
35
+ type: Input
36
+ }], controlTitle: [{
37
+ type: Input
38
+ }] } });
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFNNUUsTUFBTSxPQUFPLDhCQUErQixTQUFRLDBCQUEwQjtJQUk1RTtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQzs7MkhBTlUsOEJBQThCOytHQUE5Qiw4QkFBOEIsb0tDM0IzQyx5UEFNQTsyRkRxQmEsOEJBQThCO2tCQUoxQyxTQUFTOytCQUNFLGlDQUFpQzswRUFJbEMsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgNiBEZWMgMjAxN1xyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgfSBmcm9tIFwiLi92YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pdGVtLXZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQuaHRtbFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSXRlbVZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IGV4dGVuZHMgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgY29udHJvbFRpdGxlOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcbn1cclxuIiwiPHVsIGNsYXNzPVwibGlzdC11bnN0eWxlZFwiICpuZ0lmPVwiaXNDb250cm9sSW52YWxpZChjb250cm9sTmFtZSlcIj5cclxuICA8bGkgKm5nRm9yPVwibGV0IGVycm9yIG9mIGdldFZhbGlkYXRpb25NZXNzYWdlcyhmb3JtR3JvdXAuZ2V0KGNvbnRyb2xOYW1lKSwgY29udHJvbFRpdGxlKVwiPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJoZWxwLWJsb2NrXCI+e3sgZXJyb3IgfX08L3NwYW4+XHJcbiAgPC9saT5cclxuPC91bD5cclxuXHJcbiJdfQ==
@@ -0,0 +1,128 @@
1
+ /*
2
+ <file>
3
+ Project:
4
+ @osovitny/anatoly
5
+
6
+ Authors:
7
+ Vadim Osovitny
8
+ Anatoly Osovitny
9
+
10
+ Created:
11
+ 8 Dec 2017
12
+
13
+ Version:
14
+ 1.0
15
+
16
+ Copyright (c) 2016-2021 Osovitny Inc. All rights reserved.
17
+ </file>
18
+ */
19
+ // Node
20
+ import { Component } from "@angular/core";
21
+ //Custom
22
+ import { BaseEditComponent } from "../components/base-edit.component";
23
+ import * as i0 from "@angular/core";
24
+ export class ValidationSummaryComponent extends BaseEditComponent {
25
+ constructor() {
26
+ super();
27
+ }
28
+ getFormValidationMessages() {
29
+ let messages = [];
30
+ Object.keys(this.formGroup.controls).forEach((k) => {
31
+ var control = this.formGroup.controls[k];
32
+ if (control.controls != null) {
33
+ Object.keys(control.controls).forEach((k) => {
34
+ var child = control.controls[k];
35
+ this.getValidationMessages(child, this.getControlName(child, k)).forEach((m) => messages.push(m));
36
+ });
37
+ }
38
+ else {
39
+ this.getValidationMessages(control, this.getControlName(control, k)).forEach((m) => messages.push(m));
40
+ }
41
+ });
42
+ return messages;
43
+ }
44
+ getValidationMessages(state, thingName) {
45
+ let thing = state.path || thingName;
46
+ let messages = [];
47
+ if (state.errors) {
48
+ for (let errorName in state.errors) {
49
+ if (state.errors.hasOwnProperty(errorName)) {
50
+ switch (errorName) {
51
+ case "required":
52
+ messages.push(`${thing} is required`);
53
+ break;
54
+ case "minlength":
55
+ messages.push(`${thing} must be at least ${state.errors["minlength"].requiredLength} characters`);
56
+ break;
57
+ case "pattern":
58
+ messages.push(`${thing} contains illegal characters`);
59
+ break;
60
+ case "format":
61
+ messages.push(`${thing} format mismatch`);
62
+ break;
63
+ case "maxlength":
64
+ messages.push(`${thing} must have maximum ${state.errors["maxlength"].requiredLength} characters`);
65
+ break;
66
+ case "specialcharacters":
67
+ messages.push(`${thing} contains special characters`);
68
+ break;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ return messages;
74
+ }
75
+ /**
76
+ * Get Control Name
77
+ * @param control
78
+ * @param thingName
79
+ */
80
+ getControlName(control, thingName) {
81
+ let value = this.getControlTitle(control);
82
+ return value ? value : thingName;
83
+ }
84
+ /**
85
+ * Retrieve tilte of control
86
+ * @param control
87
+ */
88
+ getControlTitle(control) {
89
+ if (control?.nativeElement) {
90
+ let controlTitle = this.getTitleAttribute(control.nativeElement);
91
+ if (controlTitle) {
92
+ return controlTitle;
93
+ }
94
+ }
95
+ return undefined;
96
+ }
97
+ /**
98
+ * Return title attribute of form control
99
+ */
100
+ getTitleAttribute(nativeElement) {
101
+ let title;
102
+ switch (nativeElement.tagName) {
103
+ // For Kendo time and date picker element title is assigned to the 4th child control.
104
+ case "KENDO-TIMEPICKER":
105
+ case "KENDO-DATEPICKER":
106
+ title =
107
+ nativeElement.children[0]?.children[0]?.children[0]?.children[0]?.getAttribute("title");
108
+ break;
109
+ // For Kendo numaric element title is assigned to the 2nd child control.
110
+ case "KENDO-NUMERICTEXTBOX":
111
+ title = nativeElement.children[0]?.children[0]?.getAttribute("title");
112
+ break;
113
+ default:
114
+ title = nativeElement.getAttribute("title");
115
+ break;
116
+ }
117
+ return title;
118
+ }
119
+ }
120
+ ValidationSummaryComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ValidationSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
121
+ ValidationSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.5", type: ValidationSummaryComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "", isInline: true });
122
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.5", ngImport: i0, type: ValidationSummaryComponent, decorators: [{
123
+ type: Component,
124
+ args: [{
125
+ template: "",
126
+ }]
127
+ }], ctorParameters: function () { return []; } });
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS92YWxpZGF0aW9uL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOztBQUt0RSxNQUFNLE9BQWdCLDBCQUEyQixTQUFRLGlCQUFpQjtJQUN4RTtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELHlCQUF5QjtRQUN2QixJQUFJLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFFNUIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ2pELElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBRXpDLElBQWdCLE9BQVEsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFO2dCQUN6QyxNQUFNLENBQUMsSUFBSSxDQUFhLE9BQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtvQkFDdkQsSUFBSSxLQUFLLEdBQWUsT0FBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0MsSUFBSSxDQUFDLHFCQUFxQixDQUN4QixLQUFLLEVBQ0wsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQzlCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVB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LENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FDNUUsT0FBTyxDQUNSLENBQUM7Z0JBQ0osTUFBTTtZQUVSLHdFQUF3RTtZQUN4RSxLQUFLLHNCQUFzQjtnQkFDekIsS0FBSyxHQUFHLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEUsTUFBTTtZQUVSO2dCQUNFLEtBQUssR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1NBQ1Q7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7O3VIQTdIbUIsMEJBQTBCOzJHQUExQiwwQkFBMEIsMkVBRnBDLEVBQUU7MkZBRVEsMEJBQTBCO2tCQUgvQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxFQUFFO2lCQUNiIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueVxyXG4gICAgQW5hdG9seSBPc292aXRueVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgOCBEZWMgMjAxN1xyXG5cclxuICBWZXJzaW9uOlxyXG4gICAgMS4wXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy8gTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbi8vQ3VzdG9tXHJcbmltcG9ydCB7IEJhc2VFZGl0Q29tcG9uZW50IH0gZnJvbSBcIi4uL2NvbXBvbmVudHMvYmFzZS1lZGl0LmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IFwiXCIsXHJcbn0pXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIEJhc2VFZGl0Q29tcG9uZW50IHtcclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBnZXRGb3JtVmFsaWRhdGlvbk1lc3NhZ2VzKCk6IHN0cmluZ1tdIHtcclxuICAgIGxldCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaCgoaykgPT4ge1xyXG4gICAgICB2YXIgY29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmNvbnRyb2xzW2tdO1xyXG5cclxuICAgICAgaWYgKCg8Rm9ybUdyb3VwPmNvbnRyb2wpLmNvbnRyb2xzICE9IG51bGwpIHtcclxuICAgICAgICBPYmplY3Qua2V5cygoPEZvcm1Hcm91cD5jb250cm9sKS5jb250cm9scykuZm9yRWFjaCgoaykgPT4ge1xyXG4gICAgICAgICAgdmFyIGNoaWxkID0gKDxGb3JtR3JvdXA+Y29udHJvbCkuY29udHJvbHNba107XHJcbiAgICAgICAgICB0aGlzLmdldFZhbGlkYXRpb25NZXNzYWdlcyhcclxuICAgICAgICAgICAgY2hpbGQsXHJcbiAgICAgICAgICAgIHRoaXMuZ2V0Q29udHJvbE5hbWUoY2hpbGQsIGspXHJcbiAgICAgICAgICApLmZvckVhY2goKG0pID0+IG1lc3NhZ2VzLnB1c2gobSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZ2V0VmFsaWRhdGlvbk1lc3NhZ2VzKFxyXG4gICAgICAgICAgY29udHJvbCxcclxuICAgICAgICAgIHRoaXMuZ2V0Q29udHJvbE5hbWUoY29udHJvbCwgaylcclxuICAgICAgICApLmZvckVhY2goKG0pID0+IG1lc3NhZ2VzLnB1c2gobSkpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gbWVzc2FnZXM7XHJcbiAgfVxyXG5cclxuICBnZXRWYWxpZGF0aW9uTWVzc2FnZXMoc3RhdGU6IGFueSwgdGhpbmdOYW1lPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgdGhpbmc6IHN0cmluZyA9IHN0YXRlLnBhdGggfHwgdGhpbmdOYW1lO1xyXG4gICAgbGV0IG1lc3NhZ2VzOiBzdHJpbmdbXSA9IFtdO1xyXG5cclxuICAgIGlmIChzdGF0ZS5lcnJvcnMpIHtcclxuICAgICAgZm9yIChsZXQgZXJyb3JOYW1lIGluIHN0YXRlLmVycm9ycykge1xyXG4gICAgICAgIGlmIChzdGF0ZS5lcnJvcnMuaGFzT3duUHJvcGVydHkoZXJyb3JOYW1lKSkge1xyXG4gICAgICAgICAgc3dpdGNoIChlcnJvck5hbWUpIHtcclxuICAgICAgICAgICAgY2FzZSBcInJlcXVpcmVkXCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChgJHt0aGluZ30gaXMgcmVxdWlyZWRgKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJtaW5sZW5ndGhcIjpcclxuICAgICAgICAgICAgICBtZXNzYWdlcy5wdXNoKFxyXG4gICAgICAgICAgICAgICAgYCR7dGhpbmd9IG11c3QgYmUgYXQgbGVhc3QgJHtzdGF0ZS5lcnJvcnNbXCJtaW5sZW5ndGhcIl0ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJwYXR0ZXJuXCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChgJHt0aGluZ30gY29udGFpbnMgaWxsZWdhbCBjaGFyYWN0ZXJzYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwiZm9ybWF0XCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChgJHt0aGluZ30gZm9ybWF0IG1pc21hdGNoYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwibWF4bGVuZ3RoXCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChcclxuICAgICAgICAgICAgICAgIGAke3RoaW5nfSBtdXN0IGhhdmUgbWF4aW11bSAke3N0YXRlLmVycm9yc1tcIm1heGxlbmd0aFwiXS5yZXF1aXJlZExlbmd0aH0gY2hhcmFjdGVyc2BcclxuICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcInNwZWNpYWxjaGFyYWN0ZXJzXCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChgJHt0aGluZ30gY29udGFpbnMgc3BlY2lhbCBjaGFyYWN0ZXJzYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogR2V0IENvbnRyb2wgTmFtZVxyXG4gICAqIEBwYXJhbSBjb250cm9sXHJcbiAgICogQHBhcmFtIHRoaW5nTmFtZVxyXG4gICAqL1xyXG4gIGdldENvbnRyb2xOYW1lKGNvbnRyb2w6IGFueSwgdGhpbmdOYW1lPzogc3RyaW5nKSB7XHJcbiAgICBsZXQgdmFsdWUgPSB0aGlzLmdldENvbnRyb2xUaXRsZShjb250cm9sKTtcclxuICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlIDogdGhpbmdOYW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0cmlldmUgdGlsdGUgb2YgY29udHJvbFxyXG4gICAqIEBwYXJhbSBjb250cm9sXHJcbiAgICovXHJcbiAgZ2V0Q29udHJvbFRpdGxlKGNvbnRyb2w6IGFueSk6IHN0cmluZyB7XHJcbiAgICBpZiAoY29udHJvbD8ubmF0aXZlRWxlbWVudCkge1xyXG4gICAgICBsZXQgY29udHJvbFRpdGxlID0gdGhpcy5nZXRUaXRsZUF0dHJpYnV0ZShjb250cm9sLm5hdGl2ZUVsZW1lbnQpO1xyXG4gICAgICBpZiAoY29udHJvbFRpdGxlKSB7XHJcbiAgICAgICAgcmV0dXJuIGNvbnRyb2xUaXRsZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm4gdGl0bGUgYXR0cmlidXRlIG9mIGZvcm0gY29udHJvbFxyXG4gICAqL1xyXG4gIGdldFRpdGxlQXR0cmlidXRlKG5hdGl2ZUVsZW1lbnQ6IEhUTUxGb3JtRWxlbWVudCk6IHN0cmluZyB7XHJcbiAgICBsZXQgdGl0bGU6IHN0cmluZztcclxuXHJcbiAgICBzd2l0Y2ggKG5hdGl2ZUVsZW1lbnQudGFnTmFtZSkge1xyXG4gICAgICAvLyBGb3IgS2VuZG8gdGltZSBhbmQgZGF0ZSBwaWNrZXIgZWxlbWVudCB0aXRsZSBpcyBhc3NpZ25lZCB0byB0aGUgNHRoIGNoaWxkIGNvbnRyb2wuXHJcbiAgICAgIGNhc2UgXCJLRU5ETy1USU1FUElDS0VSXCI6XHJcbiAgICAgIGNhc2UgXCJLRU5ETy1EQVRFUElDS0VSXCI6XHJcbiAgICAgICAgdGl0bGUgPVxyXG4gICAgICAgICAgbmF0aXZlRWxlbWVudC5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uZ2V0QXR0cmlidXRlKFxyXG4gICAgICAgICAgICBcInRpdGxlXCJcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAvLyBGb3IgS2VuZG8gbnVtYXJpYyBlbGVtZW50IHRpdGxlIGlzIGFzc2lnbmVkIHRvIHRoZSAybmQgY2hpbGQgY29udHJvbC5cclxuICAgICAgY2FzZSBcIktFTkRPLU5VTUVSSUNURVhUQk9YXCI6XHJcbiAgICAgICAgdGl0bGUgPSBuYXRpdmVFbGVtZW50LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uZ2V0QXR0cmlidXRlKFwidGl0bGVcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRpdGxlID0gbmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJ0aXRsZVwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGl0bGU7XHJcbiAgfVxyXG59XHJcbiJdfQ==