@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
@@ -1,64 +0,0 @@
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
- export class FormValidationSummaryComponent extends ValidationSummaryComponent {
23
- constructor() {
24
- super();
25
- this.visible = false;
26
- this.customerrors = [];
27
- /*
28
- 0 - only FormValidation messages
29
- 1 - only Custom messages
30
- 2 - all
31
- */
32
- this.viewtype = 0;
33
- }
34
- getErrors() {
35
- if (this.viewtype == 1) {
36
- return this.customerrors;
37
- }
38
- let formValidationMessages = this.getFormValidationMessages();
39
- if (this.viewtype == 0) {
40
- return formValidationMessages;
41
- }
42
- var messages = [];
43
- if (formValidationMessages.length > 0) {
44
- messages.push(...formValidationMessages);
45
- }
46
- if (this.customerrors.length > 0) {
47
- messages.push(...this.customerrors);
48
- }
49
- return messages;
50
- }
51
- }
52
- FormValidationSummaryComponent.decorators = [
53
- { type: Component, args: [{
54
- selector: "anatoly-form-validation-summary",
55
- 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"
56
- },] }
57
- ];
58
- FormValidationSummaryComponent.ctorParameters = () => [];
59
- FormValidationSummaryComponent.propDecorators = {
60
- visible: [{ type: Input }],
61
- customerrors: [{ type: Input }],
62
- viewtype: [{ type: Input }]
63
- };
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU01RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBVzVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUFYRCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBRXJDOzs7O1VBSUU7UUFDTyxhQUFRLEdBQVcsQ0FBQyxDQUFDO0lBSTlCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLENBQUMsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7U0FDMUI7UUFFRCxJQUFJLHNCQUFzQixHQUFHLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO1FBQzlELElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLEVBQUU7WUFDdEIsT0FBTyxzQkFBc0IsQ0FBQztTQUMvQjtRQUVELElBQUksUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNsQixJQUFJLHNCQUFzQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLHNCQUFzQixDQUFDLENBQUM7U0FDMUM7UUFFRCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1NBQ3JDO1FBRUQsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQzs7O1lBdkNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUNBQWlDO2dCQUMzQyx5UEFBdUQ7YUFDeEQ7Ozs7c0JBRUUsS0FBSzsyQkFDTCxLQUFLO3VCQU9MLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55XHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55XHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA3IERlYyAyMDE3XHJcblxyXG4gIFZlcnNpb246XHJcbiAgICAxLjBcclxuXHJcbiAgQ29weXJpZ2h0IChjKSAyMDE2LTIwMjEgT3Nvdml0bnkgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxyXG48L2ZpbGU+XHJcbiovXHJcblxyXG4vLyBOb2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB9IGZyb20gXCIuL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImFuYXRvbHktZm9ybS12YWxpZGF0aW9uLXN1bW1hcnlcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2Zvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5odG1sXCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgZXh0ZW5kcyBWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWVycm9yczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgLypcclxuICAgIDAgLSBvbmx5IEZvcm1WYWxpZGF0aW9uIG1lc3NhZ2VzXHJcbiAgICAxIC0gb25seSBDdXN0b20gbWVzc2FnZXNcclxuICAgIDIgLSBhbGxcclxuICAqLyBcclxuICBASW5wdXQoKSB2aWV3dHlwZTogbnVtYmVyID0gMDsgXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIGdldEVycm9ycygpIHtcclxuICAgIGlmICh0aGlzLnZpZXd0eXBlID09IDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY3VzdG9tZXJyb3JzO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzID0gdGhpcy5nZXRGb3JtVmFsaWRhdGlvbk1lc3NhZ2VzKCk7XHJcbiAgICBpZiAodGhpcy52aWV3dHlwZSA9PSAwKSB7XHJcbiAgICAgIHJldHVybiBmb3JtVmFsaWRhdGlvbk1lc3NhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIHZhciBtZXNzYWdlcyA9IFtdO1xyXG4gICAgaWYgKGZvcm1WYWxpZGF0aW9uTWVzc2FnZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBtZXNzYWdlcy5wdXNoKC4uLmZvcm1WYWxpZGF0aW9uTWVzc2FnZXMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmN1c3RvbWVycm9ycy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIG1lc3NhZ2VzLnB1c2goLi4udGhpcy5jdXN0b21lcnJvcnMpO1xyXG4gICAgfSAgIFxyXG5cclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcbn1cclxuIl19
@@ -1,38 +0,0 @@
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
- export class ItemValidationSummaryComponent extends ValidationSummaryComponent {
23
- constructor() {
24
- super();
25
- }
26
- }
27
- ItemValidationSummaryComponent.decorators = [
28
- { type: Component, args: [{
29
- selector: "anatoly-item-validation-summary",
30
- 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"
31
- },] }
32
- ];
33
- ItemValidationSummaryComponent.ctorParameters = () => [];
34
- ItemValidationSummaryComponent.propDecorators = {
35
- controlName: [{ type: Input }],
36
- controlTitle: [{ type: Input }]
37
- };
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL3ZhbGlkYXRpb24vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7Ozs7OztFQWlCRTtBQUVGLE9BQU87QUFDUCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQU01RSxNQUFNLE9BQU8sOEJBQStCLFNBQVEsMEJBQTBCO0lBSTVFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDOzs7WUFWRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLGlDQUFpQztnQkFDM0MsbVFBQXVEO2FBQ3hEOzs7OzBCQUVFLEtBQUs7MkJBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDYgRGVjIDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IH0gZnJvbSBcIi4vdmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeVwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkuY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIEl0ZW1WYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCBleHRlbmRzIFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50IHtcclxuICBASW5wdXQoKSBjb250cm9sTmFtZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGNvbnRyb2xUaXRsZTogc3RyaW5nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,126 +0,0 @@
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
- export class ValidationSummaryComponent extends BaseEditComponent {
24
- constructor() {
25
- super();
26
- }
27
- getFormValidationMessages() {
28
- let messages = [];
29
- Object.keys(this.formGroup.controls).forEach((k) => {
30
- var control = this.formGroup.controls[k];
31
- if (control.controls != null) {
32
- Object.keys(control.controls).forEach((k) => {
33
- var child = control.controls[k];
34
- this.getValidationMessages(child, this.getControlName(child, k)).forEach((m) => messages.push(m));
35
- });
36
- }
37
- else {
38
- this.getValidationMessages(control, this.getControlName(control, k)).forEach((m) => messages.push(m));
39
- }
40
- });
41
- return messages;
42
- }
43
- getValidationMessages(state, thingName) {
44
- let thing = state.path || thingName;
45
- let messages = [];
46
- if (state.errors) {
47
- for (let errorName in state.errors) {
48
- if (state.errors.hasOwnProperty(errorName)) {
49
- switch (errorName) {
50
- case "required":
51
- messages.push(`${thing} is required`);
52
- break;
53
- case "minlength":
54
- messages.push(`${thing} must be at least ${state.errors["minlength"].requiredLength} characters`);
55
- break;
56
- case "pattern":
57
- messages.push(`${thing} contains illegal characters`);
58
- break;
59
- case "format":
60
- messages.push(`${thing} format mismatch`);
61
- break;
62
- case "maxlength":
63
- messages.push(`${thing} must have maximum ${state.errors["maxlength"].requiredLength} characters`);
64
- break;
65
- case "specialcharacters":
66
- messages.push(`${thing} contains special characters`);
67
- break;
68
- }
69
- }
70
- }
71
- }
72
- return messages;
73
- }
74
- /**
75
- * Get Control Name
76
- * @param control
77
- * @param thingName
78
- */
79
- getControlName(control, thingName) {
80
- let value = this.getControlTitle(control);
81
- return value ? value : thingName;
82
- }
83
- /**
84
- * Retrieve tilte of control
85
- * @param control
86
- */
87
- getControlTitle(control) {
88
- if (control === null || control === void 0 ? void 0 : control.nativeElement) {
89
- let controlTitle = this.getTitleAttribute(control.nativeElement);
90
- if (controlTitle) {
91
- return controlTitle;
92
- }
93
- }
94
- return undefined;
95
- }
96
- /**
97
- * Return title attribute of form control
98
- */
99
- getTitleAttribute(nativeElement) {
100
- var _a, _b, _c, _d, _e, _f;
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
- (_d = (_c = (_b = (_a = nativeElement.children[0]) === null || _a === void 0 ? void 0 : _a.children[0]) === null || _b === void 0 ? void 0 : _b.children[0]) === null || _c === void 0 ? void 0 : _c.children[0]) === null || _d === void 0 ? void 0 : _d.getAttribute("title");
108
- break;
109
- // For Kendo numaric element title is assigned to the 2nd child control.
110
- case "KENDO-NUMERICTEXTBOX":
111
- title = (_f = (_e = nativeElement.children[0]) === null || _e === void 0 ? void 0 : _e.children[0]) === null || _f === void 0 ? void 0 : _f.getAttribute("title");
112
- break;
113
- default:
114
- title = nativeElement.getAttribute("title");
115
- break;
116
- }
117
- return title;
118
- }
119
- }
120
- ValidationSummaryComponent.decorators = [
121
- { type: Component, args: [{
122
- template: ""
123
- },] }
124
- ];
125
- ValidationSummaryComponent.ctorParameters = () => [];
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdW1tYXJ5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS92YWxpZGF0aW9uL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBaUJFO0FBRUYsT0FBTztBQUNQLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHMUMsUUFBUTtBQUNSLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBS3RFLE1BQU0sT0FBZ0IsMEJBQTJCLFNBQVEsaUJBQWlCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQseUJBQXlCO1FBQ3ZCLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUU1QixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDakQsSUFBSSxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFekMsSUFBZ0IsT0FBUSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7Z0JBQ3pDLE1BQU0sQ0FBQyxJQUFJLENBQWEsT0FBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUN2RCxJQUFJLEtBQUssR0FBZSxPQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUM3QyxJQUFJLENBQUMscUJBQXFCLENBQ3hCLEtBQUssRUFDTCxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FDOUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFB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QyxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsMENBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFlBQVksQ0FDNUUsT0FBTyxDQUNSLENBQUM7Z0JBQ0osTUFBTTtZQUVSLHdFQUF3RTtZQUN4RSxLQUFLLHNCQUFzQjtnQkFDekIsS0FBSyxHQUFHLE1BQUEsTUFBQSxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQywwQ0FBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLDBDQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDdEUsTUFBTTtZQUVSO2dCQUNFLEtBQUssR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUM1QyxNQUFNO1NBQ1Q7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7OztZQWhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLEVBQUU7YUFDYiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnlcclxuICAgIEFuYXRvbHkgT3Nvdml0bnlcclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDggRGVjIDIwMTdcclxuXHJcbiAgVmVyc2lvbjpcclxuICAgIDEuMFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vIE5vZGVcclxuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG4vL0N1c3RvbVxyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gXCIuLi9jb21wb25lbnRzL2Jhc2UtZWRpdC5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBcIlwiLFxyXG59KVxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9ybVZhbGlkYXRpb25NZXNzYWdlcygpOiBzdHJpbmdbXSB7XHJcbiAgICBsZXQgbWVzc2FnZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtR3JvdXAuY29udHJvbHMpLmZvckVhY2goKGspID0+IHtcclxuICAgICAgdmFyIGNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5jb250cm9sc1trXTtcclxuXHJcbiAgICAgIGlmICgoPEZvcm1Hcm91cD5jb250cm9sKS5jb250cm9scyAhPSBudWxsKSB7XHJcbiAgICAgICAgT2JqZWN0LmtleXMoKDxGb3JtR3JvdXA+Y29udHJvbCkuY29udHJvbHMpLmZvckVhY2goKGspID0+IHtcclxuICAgICAgICAgIHZhciBjaGlsZCA9ICg8Rm9ybUdyb3VwPmNvbnRyb2wpLmNvbnRyb2xzW2tdO1xyXG4gICAgICAgICAgdGhpcy5nZXRWYWxpZGF0aW9uTWVzc2FnZXMoXHJcbiAgICAgICAgICAgIGNoaWxkLFxyXG4gICAgICAgICAgICB0aGlzLmdldENvbnRyb2xOYW1lKGNoaWxkLCBrKVxyXG4gICAgICAgICAgKS5mb3JFYWNoKChtKSA9PiBtZXNzYWdlcy5wdXNoKG0pKTtcclxuICAgICAgICB9KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmdldFZhbGlkYXRpb25NZXNzYWdlcyhcclxuICAgICAgICAgIGNvbnRyb2wsXHJcbiAgICAgICAgICB0aGlzLmdldENvbnRyb2xOYW1lKGNvbnRyb2wsIGspXHJcbiAgICAgICAgKS5mb3JFYWNoKChtKSA9PiBtZXNzYWdlcy5wdXNoKG0pKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgcmV0dXJuIG1lc3NhZ2VzO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsaWRhdGlvbk1lc3NhZ2VzKHN0YXRlOiBhbnksIHRoaW5nTmFtZT86IHN0cmluZykge1xyXG4gICAgbGV0IHRoaW5nOiBzdHJpbmcgPSBzdGF0ZS5wYXRoIHx8IHRoaW5nTmFtZTtcclxuICAgIGxldCBtZXNzYWdlczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICBpZiAoc3RhdGUuZXJyb3JzKSB7XHJcbiAgICAgIGZvciAobGV0IGVycm9yTmFtZSBpbiBzdGF0ZS5lcnJvcnMpIHtcclxuICAgICAgICBpZiAoc3RhdGUuZXJyb3JzLmhhc093blByb3BlcnR5KGVycm9yTmFtZSkpIHtcclxuICAgICAgICAgIHN3aXRjaCAoZXJyb3JOYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgXCJyZXF1aXJlZFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGlzIHJlcXVpcmVkYCk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwibWlubGVuZ3RoXCI6XHJcbiAgICAgICAgICAgICAgbWVzc2FnZXMucHVzaChcclxuICAgICAgICAgICAgICAgIGAke3RoaW5nfSBtdXN0IGJlIGF0IGxlYXN0ICR7c3RhdGUuZXJyb3JzW1wibWlubGVuZ3RoXCJdLnJlcXVpcmVkTGVuZ3RofSBjaGFyYWN0ZXJzYFxyXG4gICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgICBjYXNlIFwicGF0dGVyblwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGNvbnRhaW5zIGlsbGVnYWwgY2hhcmFjdGVyc2ApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcImZvcm1hdFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGZvcm1hdCBtaXNtYXRjaGApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgICAgY2FzZSBcIm1heGxlbmd0aFwiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goXHJcbiAgICAgICAgICAgICAgICBgJHt0aGluZ30gbXVzdCBoYXZlIG1heGltdW0gJHtzdGF0ZS5lcnJvcnNbXCJtYXhsZW5ndGhcIl0ucmVxdWlyZWRMZW5ndGh9IGNoYXJhY3RlcnNgXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAgIGNhc2UgXCJzcGVjaWFsY2hhcmFjdGVyc1wiOlxyXG4gICAgICAgICAgICAgIG1lc3NhZ2VzLnB1c2goYCR7dGhpbmd9IGNvbnRhaW5zIHNwZWNpYWwgY2hhcmFjdGVyc2ApO1xyXG4gICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBtZXNzYWdlcztcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEdldCBDb250cm9sIE5hbWVcclxuICAgKiBAcGFyYW0gY29udHJvbFxyXG4gICAqIEBwYXJhbSB0aGluZ05hbWVcclxuICAgKi9cclxuICBnZXRDb250cm9sTmFtZShjb250cm9sOiBhbnksIHRoaW5nTmFtZT86IHN0cmluZykge1xyXG4gICAgbGV0IHZhbHVlID0gdGhpcy5nZXRDb250cm9sVGl0bGUoY29udHJvbCk7XHJcbiAgICByZXR1cm4gdmFsdWUgPyB2YWx1ZSA6IHRoaW5nTmFtZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlIHRpbHRlIG9mIGNvbnRyb2xcclxuICAgKiBAcGFyYW0gY29udHJvbFxyXG4gICAqL1xyXG4gIGdldENvbnRyb2xUaXRsZShjb250cm9sOiBhbnkpOiBzdHJpbmcge1xyXG4gICAgaWYgKGNvbnRyb2w/Lm5hdGl2ZUVsZW1lbnQpIHtcclxuICAgICAgbGV0IGNvbnRyb2xUaXRsZSA9IHRoaXMuZ2V0VGl0bGVBdHRyaWJ1dGUoY29udHJvbC5uYXRpdmVFbGVtZW50KTtcclxuICAgICAgaWYgKGNvbnRyb2xUaXRsZSkge1xyXG4gICAgICAgIHJldHVybiBjb250cm9sVGl0bGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmV0dXJuIHRpdGxlIGF0dHJpYnV0ZSBvZiBmb3JtIGNvbnRyb2xcclxuICAgKi9cclxuICBnZXRUaXRsZUF0dHJpYnV0ZShuYXRpdmVFbGVtZW50OiBIVE1MRm9ybUVsZW1lbnQpOiBzdHJpbmcge1xyXG4gICAgbGV0IHRpdGxlOiBzdHJpbmc7XHJcblxyXG4gICAgc3dpdGNoIChuYXRpdmVFbGVtZW50LnRhZ05hbWUpIHtcclxuICAgICAgLy8gRm9yIEtlbmRvIHRpbWUgYW5kIGRhdGUgcGlja2VyIGVsZW1lbnQgdGl0bGUgaXMgYXNzaWduZWQgdG8gdGhlIDR0aCBjaGlsZCBjb250cm9sLlxyXG4gICAgICBjYXNlIFwiS0VORE8tVElNRVBJQ0tFUlwiOlxyXG4gICAgICBjYXNlIFwiS0VORE8tREFURVBJQ0tFUlwiOlxyXG4gICAgICAgIHRpdGxlID1cclxuICAgICAgICAgIG5hdGl2ZUVsZW1lbnQuY2hpbGRyZW5bMF0/LmNoaWxkcmVuWzBdPy5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmdldEF0dHJpYnV0ZShcclxuICAgICAgICAgICAgXCJ0aXRsZVwiXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgLy8gRm9yIEtlbmRvIG51bWFyaWMgZWxlbWVudCB0aXRsZSBpcyBhc3NpZ25lZCB0byB0aGUgMm5kIGNoaWxkIGNvbnRyb2wuXHJcbiAgICAgIGNhc2UgXCJLRU5ETy1OVU1FUklDVEVYVEJPWFwiOlxyXG4gICAgICAgIHRpdGxlID0gbmF0aXZlRWxlbWVudC5jaGlsZHJlblswXT8uY2hpbGRyZW5bMF0/LmdldEF0dHJpYnV0ZShcInRpdGxlXCIpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aXRsZSA9IG5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFwidGl0bGVcIik7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRpdGxlO1xyXG4gIH1cclxufVxyXG4iXX0=