myrta-ui 14.0.0-beta.1 → 14.0.0-beta.3

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/README.md +1 -0
  2. package/esm2020/lib/components/badges/components/badge/badge.component.mjs +2 -2
  3. package/esm2020/lib/components/button/button.component.mjs +3 -3
  4. package/esm2020/lib/components/cdk-tooltip/cdk-tooltip.directive.mjs +1 -1
  5. package/esm2020/lib/components/chars-left/chars-left.component.mjs +6 -3
  6. package/esm2020/lib/components/dropdown/dropdown.component.mjs +2 -2
  7. package/esm2020/lib/components/error-message/error-message.component.mjs +7 -4
  8. package/esm2020/lib/components/form/checkbox/checkbox.component.mjs +5 -12
  9. package/esm2020/lib/components/form/checkbox/checkbox.enum.mjs +2 -5
  10. package/esm2020/lib/components/form/checkbox-group/checkbox-group.component.mjs +10 -4
  11. package/esm2020/lib/components/form/checkbox-group/components/checkbox-group-header/checkbox-group-header.component.mjs +1 -1
  12. package/esm2020/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.mjs +24 -15
  13. package/esm2020/lib/components/form/document-editor/document-editor.component.mjs +1 -1
  14. package/esm2020/lib/components/form/editor/config/default-inline-style.mjs +6 -0
  15. package/esm2020/lib/components/form/editor/editor.component.mjs +45 -13
  16. package/esm2020/lib/components/form/editor/editor.enum.mjs +2 -0
  17. package/esm2020/lib/components/form/input-date-time/input-date-time.component.mjs +50 -18
  18. package/esm2020/lib/components/form/input-date-time/input-date-time.enum.mjs +1 -1
  19. package/esm2020/lib/components/form/input-datepicker/input-datepicker.component.mjs +13 -8
  20. package/esm2020/lib/components/form/input-file/input-file.component.mjs +4 -3
  21. package/esm2020/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.mjs +3 -3
  22. package/esm2020/lib/components/form/input-file-image/input-file-image.component.mjs +23 -12
  23. package/esm2020/lib/components/form/input-file-image/input-file-image.enum.mjs +3 -3
  24. package/esm2020/lib/components/form/input-number/input-number.component.mjs +54 -27
  25. package/esm2020/lib/components/form/input-number/input-number.enum.mjs +1 -1
  26. package/esm2020/lib/components/form/input-opt/components/input-opt/input-opt.component.mjs +2 -4
  27. package/esm2020/lib/components/form/input-password/input-password.component.mjs +37 -23
  28. package/esm2020/lib/components/form/input-password/input-password.enum.mjs +1 -1
  29. package/esm2020/lib/components/form/input-password/input-password.module.mjs +12 -4
  30. package/esm2020/lib/components/form/input-phone/input-phone.component.mjs +2 -2
  31. package/esm2020/lib/components/form/input-search/input-search.component.mjs +44 -36
  32. package/esm2020/lib/components/form/input-search/input-search.enum.mjs +1 -1
  33. package/esm2020/lib/components/form/input-search/input-search.module.mjs +7 -4
  34. package/esm2020/lib/components/form/input-select/input-select.component.mjs +10 -4
  35. package/esm2020/lib/components/form/input-tel/assets/base64.mjs +4 -0
  36. package/esm2020/lib/components/form/input-tel/data/all-countries.mjs +1323 -0
  37. package/esm2020/lib/components/form/input-tel/data/country-iso.enum.mjs +247 -0
  38. package/esm2020/lib/components/form/input-tel/data/phone-number-format.enum.mjs +6 -0
  39. package/esm2020/lib/components/form/input-tel/data/search-country-field.enum.mjs +8 -0
  40. package/esm2020/lib/components/form/input-tel/directives/input-tel.directive.mjs +62 -0
  41. package/esm2020/lib/components/form/input-tel/enums/input-phone.enum.mjs +7 -0
  42. package/esm2020/lib/components/form/input-tel/input-tel.component.mjs +389 -0
  43. package/esm2020/lib/components/form/input-tel/input-tel.module.mjs +47 -0
  44. package/esm2020/lib/components/form/input-tel/models/country.model.mjs +2 -0
  45. package/esm2020/lib/components/form/input-text/input-text.component.mjs +35 -29
  46. package/esm2020/lib/components/form/input-textarea/input-textarea.component.mjs +47 -42
  47. package/esm2020/lib/components/form/input-timepicker/input-timepicker.component.mjs +3 -3
  48. package/esm2020/lib/components/form/radio/radio.component.mjs +3 -3
  49. package/esm2020/lib/components/form/radio-group/components/radio-group-header/radio-group-header.component.mjs +49 -0
  50. package/esm2020/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.mjs +69 -0
  51. package/esm2020/lib/components/form/radio-group/helpers/filter-search-group.mjs +27 -0
  52. package/esm2020/lib/components/form/radio-group/helpers/get-item-by-id.mjs +11 -0
  53. package/esm2020/lib/components/form/radio-group/helpers/move-selected-to-first.mjs +27 -0
  54. package/esm2020/lib/components/form/radio-group/models/radio-group.model.mjs +2 -0
  55. package/esm2020/lib/components/form/radio-group/radio-group.component.mjs +185 -0
  56. package/esm2020/lib/components/form/radio-group/radio-group.module.mjs +47 -0
  57. package/esm2020/lib/components/form/rating/rating.component.mjs +4 -4
  58. package/esm2020/lib/components/form/switch/switch.component.mjs +2 -2
  59. package/esm2020/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.mjs +3 -3
  60. package/esm2020/lib/components/gallery/components/gallery-item/gallery-item.component.mjs +4 -4
  61. package/esm2020/lib/components/hint-error-message/hint-error-message.component.mjs +6 -6
  62. package/esm2020/lib/components/label/label.component.mjs +3 -3
  63. package/esm2020/lib/components/modal/modal.component.mjs +13 -3
  64. package/esm2020/lib/components/paginator/paginator.component.mjs +16 -6
  65. package/esm2020/lib/components/paginator/paginator.module.mjs +8 -8
  66. package/esm2020/lib/components/progress/progress.component.mjs +2 -2
  67. package/esm2020/lib/components/save-state/components/save-state-editor/save-state-editor.component.mjs +2 -2
  68. package/esm2020/lib/components/save-state/save-state.component.mjs +3 -3
  69. package/esm2020/lib/components/save-state/save-state.enum.mjs +1 -1
  70. package/esm2020/lib/components/table/table.component.mjs +3 -3
  71. package/esm2020/lib/components/tabs/tabs-group/tabs-group.component.mjs +2 -2
  72. package/esm2020/lib/components/tooltip/tooltip-trigger/tooltip-trigger.component.mjs +4 -14
  73. package/esm2020/lib/components/wrappers/content-wrapper/content-wrapper.component.mjs +2 -2
  74. package/esm2020/lib/enums/typed.input.state.mjs +1 -1
  75. package/esm2020/lib/services/index.mjs +2 -1
  76. package/esm2020/lib/services/mrx-autosave/mrx-autosave.service.mjs +1 -1
  77. package/esm2020/lib/services/mrx-form-validator/constants/invalid-messages.mjs +10 -0
  78. package/esm2020/lib/services/mrx-form-validator/helpers/get-error-message.helper.mjs +10 -0
  79. package/esm2020/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.mjs +28 -0
  80. package/esm2020/lib/services/mrx-form-validator/models/index.mjs +4 -0
  81. package/esm2020/lib/services/mrx-form-validator/models/validations-options.model.mjs +2 -0
  82. package/esm2020/lib/services/mrx-form-validator/models/validations-settings.model.mjs +2 -0
  83. package/esm2020/lib/services/mrx-form-validator/models/validations-types.model.mjs +22 -0
  84. package/esm2020/lib/services/mrx-form-validator/mrx-form-validator.mjs +84 -183
  85. package/esm2020/lib/services/mrx-form-validator/validations/callback.validation.mjs +15 -0
  86. package/esm2020/lib/services/mrx-form-validator/validations/email.validation.mjs +11 -0
  87. package/esm2020/lib/services/mrx-form-validator/validations/max-length.validation.mjs +10 -0
  88. package/esm2020/lib/services/mrx-form-validator/validations/max-value.validation.mjs +10 -0
  89. package/esm2020/lib/services/mrx-form-validator/validations/min-length.validation.mjs +11 -0
  90. package/esm2020/lib/services/mrx-form-validator/validations/min-value.validation.mjs +10 -0
  91. package/esm2020/lib/services/mrx-form-validator/validations/pattern.validation.mjs +11 -0
  92. package/esm2020/lib/services/mrx-form-validator/validations/required.validation.mjs +22 -0
  93. package/esm2020/public-api.mjs +7 -1
  94. package/fesm2015/myrta-ui.mjs +4004 -1339
  95. package/fesm2015/myrta-ui.mjs.map +1 -1
  96. package/fesm2020/myrta-ui.mjs +3999 -1341
  97. package/fesm2020/myrta-ui.mjs.map +1 -1
  98. package/lib/components/chars-left/chars-left.component.d.ts +1 -0
  99. package/lib/components/error-message/error-message.component.d.ts +2 -1
  100. package/lib/components/form/checkbox/checkbox.component.d.ts +2 -4
  101. package/lib/components/form/checkbox/checkbox.enum.d.ts +0 -4
  102. package/lib/components/form/checkbox-group/checkbox-group.component.d.ts +3 -1
  103. package/lib/components/form/checkbox-group/components/checkbox-group-item/checkbox-group-item.component.d.ts +4 -1
  104. package/lib/components/form/editor/config/default-inline-style.d.ts +11 -0
  105. package/lib/components/form/editor/editor.component.d.ts +13 -4
  106. package/lib/components/form/editor/editor.enum.d.ts +5 -0
  107. package/lib/components/form/input-date-time/input-date-time.component.d.ts +6 -2
  108. package/lib/components/form/input-date-time/input-date-time.enum.d.ts +1 -1
  109. package/lib/components/form/input-datepicker/input-datepicker.component.d.ts +2 -1
  110. package/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.d.ts +6 -0
  111. package/lib/components/form/input-file-image/input-file-image.component.d.ts +4 -2
  112. package/lib/components/form/input-file-image/input-file-image.enum.d.ts +2 -2
  113. package/lib/components/form/input-number/input-number.component.d.ts +11 -3
  114. package/lib/components/form/input-number/input-number.enum.d.ts +2 -2
  115. package/lib/components/form/input-opt/components/input-opt/input-opt.component.d.ts +2 -2
  116. package/lib/components/form/input-password/input-password.component.d.ts +14 -9
  117. package/lib/components/form/input-password/input-password.enum.d.ts +4 -0
  118. package/lib/components/form/input-password/input-password.module.d.ts +3 -1
  119. package/lib/components/form/input-search/input-search.component.d.ts +15 -11
  120. package/lib/components/form/input-search/input-search.enum.d.ts +5 -0
  121. package/lib/components/form/input-search/input-search.module.d.ts +2 -1
  122. package/lib/components/form/input-select/input-select.component.d.ts +3 -1
  123. package/lib/components/form/input-tel/assets/base64.d.ts +3 -0
  124. package/lib/components/form/input-tel/data/all-countries.d.ts +1 -0
  125. package/lib/components/form/input-tel/data/country-iso.enum.d.ts +245 -0
  126. package/lib/components/form/input-tel/data/phone-number-format.enum.d.ts +5 -0
  127. package/lib/components/form/input-tel/data/search-country-field.enum.d.ts +6 -0
  128. package/lib/components/form/input-tel/directives/input-tel.directive.d.ts +21 -0
  129. package/lib/components/form/input-tel/enums/input-phone.enum.d.ts +11 -0
  130. package/lib/components/form/input-tel/input-tel.component.d.ts +89 -0
  131. package/lib/components/form/input-tel/input-tel.module.d.ts +14 -0
  132. package/lib/components/form/input-tel/models/country.model.d.ts +18 -0
  133. package/lib/components/form/input-text/input-text.component.d.ts +12 -9
  134. package/lib/components/form/input-textarea/input-textarea.component.d.ts +12 -15
  135. package/lib/components/form/radio-group/components/radio-group-header/radio-group-header.component.d.ts +20 -0
  136. package/lib/components/form/radio-group/components/radio-group-item/radio-group-item.component.d.ts +28 -0
  137. package/lib/components/form/radio-group/helpers/filter-search-group.d.ts +2 -0
  138. package/lib/components/form/radio-group/helpers/get-item-by-id.d.ts +2 -0
  139. package/lib/components/form/radio-group/helpers/move-selected-to-first.d.ts +2 -0
  140. package/lib/components/form/radio-group/models/radio-group.model.d.ts +12 -0
  141. package/lib/components/form/radio-group/radio-group.component.d.ts +60 -0
  142. package/lib/components/form/radio-group/radio-group.module.d.ts +16 -0
  143. package/lib/components/modal/modal.component.d.ts +1 -0
  144. package/lib/components/paginator/paginator.component.d.ts +3 -1
  145. package/lib/components/paginator/paginator.module.d.ts +3 -3
  146. package/lib/components/save-state/save-state.enum.d.ts +1 -1
  147. package/lib/components/tooltip/tooltip-trigger/tooltip-trigger.component.d.ts +0 -1
  148. package/lib/helpers/formatting-iso-to-string.d.ts +1 -1
  149. package/lib/services/index.d.ts +1 -0
  150. package/lib/services/mrx-autosave/mrx-autosave.service.d.ts +1 -1
  151. package/lib/services/mrx-form-validator/constants/invalid-messages.d.ts +9 -0
  152. package/lib/services/mrx-form-validator/helpers/get-error-message.helper.d.ts +3 -0
  153. package/lib/services/mrx-form-validator/helpers/get-sorting-validations.helper.d.ts +2 -0
  154. package/lib/services/mrx-form-validator/models/index.d.ts +3 -0
  155. package/lib/services/mrx-form-validator/models/validations-options.model.d.ts +28 -0
  156. package/lib/services/mrx-form-validator/models/validations-settings.model.d.ts +7 -0
  157. package/lib/services/mrx-form-validator/models/validations-types.model.d.ts +19 -0
  158. package/lib/services/mrx-form-validator/mrx-form-validator.d.ts +4 -32
  159. package/lib/services/mrx-form-validator/validations/callback.validation.d.ts +6 -0
  160. package/lib/services/mrx-form-validator/validations/email.validation.d.ts +6 -0
  161. package/lib/services/mrx-form-validator/validations/max-length.validation.d.ts +6 -0
  162. package/lib/services/mrx-form-validator/validations/max-value.validation.d.ts +6 -0
  163. package/lib/services/mrx-form-validator/validations/min-length.validation.d.ts +6 -0
  164. package/lib/services/mrx-form-validator/validations/min-value.validation.d.ts +6 -0
  165. package/lib/services/mrx-form-validator/validations/pattern.validation.d.ts +6 -0
  166. package/lib/services/mrx-form-validator/validations/required.validation.d.ts +6 -0
  167. package/package.json +3 -1
  168. package/public-api.d.ts +5 -0
@@ -0,0 +1,47 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { InputTelComponent } from './input-tel.component';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { MaskedInputTelDirective } from './directives/input-tel.directive';
6
+ import { DropdownModule } from '../../dropdown/dropdown.module';
7
+ import { ErrorMessageModule } from '../../error-message/error-message.module';
8
+ import { NgxMaskModule } from 'ngx-mask';
9
+ import { SaveStateModule } from '../../save-state/save-state.module';
10
+ import * as i0 from "@angular/core";
11
+ export class InputTelModule {
12
+ }
13
+ InputTelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: InputTelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
14
+ InputTelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: InputTelModule, declarations: [InputTelComponent,
15
+ MaskedInputTelDirective], imports: [CommonModule,
16
+ FormsModule,
17
+ DropdownModule,
18
+ ErrorMessageModule,
19
+ NgxMaskModule,
20
+ SaveStateModule], exports: [InputTelComponent] });
21
+ InputTelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: InputTelModule, imports: [CommonModule,
22
+ FormsModule,
23
+ DropdownModule,
24
+ ErrorMessageModule,
25
+ NgxMaskModule,
26
+ SaveStateModule] });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: InputTelModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: [
31
+ InputTelComponent,
32
+ MaskedInputTelDirective
33
+ ],
34
+ imports: [
35
+ CommonModule,
36
+ FormsModule,
37
+ DropdownModule,
38
+ ErrorMessageModule,
39
+ NgxMaskModule,
40
+ SaveStateModule,
41
+ ],
42
+ exports: [
43
+ InputTelComponent
44
+ ]
45
+ }]
46
+ }] });
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGVsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LXRlbC9pbnB1dC10ZWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBcUJyRSxNQUFNLE9BQU8sY0FBYzs7MkdBQWQsY0FBYzs0R0FBZCxjQUFjLGlCQWZ2QixpQkFBaUI7UUFDakIsdUJBQXVCLGFBR3ZCLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsZUFBZSxhQUdmLGlCQUFpQjs0R0FHUixjQUFjLFlBWHZCLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixhQUFhO1FBQ2IsZUFBZTsyRkFNTixjQUFjO2tCQWpCMUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osaUJBQWlCO3dCQUNqQix1QkFBdUI7cUJBQ3hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCxrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjtxQkFDbEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbnB1dFRlbENvbXBvbmVudCB9IGZyb20gJy4vaW5wdXQtdGVsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXNrZWRJbnB1dFRlbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC10ZWwuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRHJvcGRvd25Nb2R1bGUgfSBmcm9tICcuLi8uLi9kcm9wZG93bi9kcm9wZG93bi5tb2R1bGUnO1xyXG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VNb2R1bGUgfSBmcm9tICcuLi8uLi9lcnJvci1tZXNzYWdlL2Vycm9yLW1lc3NhZ2UubW9kdWxlJztcclxuaW1wb3J0IHsgTmd4TWFza01vZHVsZSB9IGZyb20gJ25neC1tYXNrJztcclxuaW1wb3J0IHsgU2F2ZVN0YXRlTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2F2ZS1zdGF0ZS9zYXZlLXN0YXRlLm1vZHVsZSc7XHJcblxyXG5cclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBJbnB1dFRlbENvbXBvbmVudCxcclxuICAgIE1hc2tlZElucHV0VGVsRGlyZWN0aXZlXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIERyb3Bkb3duTW9kdWxlLFxyXG4gICAgRXJyb3JNZXNzYWdlTW9kdWxlLFxyXG4gICAgTmd4TWFza01vZHVsZSxcclxuICAgIFNhdmVTdGF0ZU1vZHVsZSxcclxuICBdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIElucHV0VGVsQ29tcG9uZW50XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXRUZWxNb2R1bGUgeyB9XHJcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnRyeS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LXRlbC9tb2RlbHMvY291bnRyeS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBDb3VudHJ5IHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgaXNvMjogc3RyaW5nO1xyXG4gIGRpYWxDb2RlOiBzdHJpbmc7XHJcbiAgcHJpb3JpdHk6IG51bWJlcjtcclxuICBhcmVhQ29kZXM/OiBzdHJpbmdbXTtcclxuICBodG1sSWQ6IHN0cmluZztcclxuICBmbGFnQ2xhc3M6IHN0cmluZztcclxuICBwbGFjZUhvbGRlcjogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIElucHV0VmFsdWUge1xyXG4gIHBob25lTnVtYmVyOiBzdHJpbmcsXHJcbiAgc2VsZWN0ZWRDb3VudHJ5OiBzdHJpbmcsXHJcbiAgaXNvMkNvZGU6IHN0cmluZyxcclxuICBkaWFsQ29kZTogc3RyaW5nLFxyXG4gIG51bWJlckZvcm1hdDogc3RyaW5nLFxyXG4gIGlzTnVtYmVyVmFsaWQ6IGJvb2xlYW4sXHJcbn1cclxuIl19
@@ -22,41 +22,41 @@ export class InputTextComponent {
22
22
  this.maxlength = 0;
23
23
  this.minlength = 0;
24
24
  this.placeholder = '';
25
- this.invalid = false;
26
- this.invalidMessage = '';
27
- this.checkInvalid = null;
28
25
  this.customClasses = '';
29
26
  this.size = 'large';
30
27
  this.isTooltipValue = false;
31
28
  this.icon = null;
32
29
  this.iconColor = 'default';
30
+ // VALIDATE
31
+ this.invalid = false;
32
+ this.invalidMessage = '';
33
+ this.checkInvalid = null;
34
+ this.restrictInput = true;
33
35
  // MASK
34
36
  this.mask = '';
35
37
  this.maskPrefix = '';
36
38
  this.showMaskTyped = false;
37
39
  this.maskDropSpecialCharacters = true;
38
40
  this.changed = new EventEmitter();
41
+ this.blurred = new EventEmitter();
39
42
  this.modelChange = new EventEmitter();
40
43
  this.onChange = (value) => { };
41
44
  this.onTouched = () => { };
42
45
  }
43
- get isInvalidMessage() {
44
- return !!this.invalidMessage || !!this.invalidMessage.length;
46
+ get _isInvalidValueLength() {
47
+ return this.maxlength < this.value?.length && this.maxlength > 0;
45
48
  }
46
- get isValid() {
47
- return this.baseValidate();
49
+ get getInvalid() {
50
+ return this._isInvalidValueLength || this.invalid;
48
51
  }
49
- get isVerified() {
50
- return (!this.required ||
51
- (this.required && this.value != null && this.value !== '' && this.isValid));
52
+ get getInvalidMessage() {
53
+ return this._isInvalidValueLength ? 'Превышено допустимое значение символов' : this.invalidMessage;
52
54
  }
53
55
  get readonlyClass() {
54
56
  return this.readonly ? 'mrx-input__readonly' : '';
55
57
  }
56
58
  get checkValidClasses() {
57
- return this.checkInvalid === false ?
58
- 'mrx-input-checked-success' :
59
- this.checkInvalid === true ? 'mrx-input-checked-error' : '';
59
+ return this.checkInvalid === false ? 'mrx-input-checked-success' : this.checkInvalid === true ? 'mrx-input-checked-error' : '';
60
60
  }
61
61
  get getClasses() {
62
62
  return `${InputTextSizesEnum[this.size]} ${this.customClasses} ${this.readonlyClass} ${this.checkValidClasses}`;
@@ -67,6 +67,9 @@ export class InputTextComponent {
67
67
  get getTooltipValue() {
68
68
  return this.isTooltipValue ? this.value : '';
69
69
  }
70
+ _lengthValidate() {
71
+ return this.maxlength > this.value?.length;
72
+ }
70
73
  formatValue(value) {
71
74
  return value.length === this.maskPrefix.length ? '' : value;
72
75
  }
@@ -92,15 +95,10 @@ export class InputTextComponent {
92
95
  }, 0);
93
96
  }
94
97
  }
95
- baseValidate() {
96
- if (this.minlength) {
97
- return !!this.value && this.value.length >= this.minlength;
98
- }
99
- return true;
100
- }
101
98
  updateSelection(event) {
102
99
  this.selectionStart = event.target.selectionStart;
103
100
  this.selectionEnd = event.target.selectionEnd;
101
+ this.blurred.emit();
104
102
  }
105
103
  registerOnChange(fn) {
106
104
  this.onChange = fn;
@@ -121,15 +119,19 @@ export class InputTextComponent {
121
119
  this.onChange(this.formatValue(insideValue));
122
120
  this.onTouched();
123
121
  }
122
+ onBlur(event) {
123
+ this.updateSelection(event);
124
+ this.blurred.emit({ value: this.formatValue(this.value), id: this.uuid });
125
+ }
124
126
  }
125
127
  InputTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: InputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
126
- InputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: InputTextComponent, selector: "mrx-input-text", inputs: { fields: "fields", disabled: "disabled", required: "required", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", placeholder: "placeholder", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", customClasses: "customClasses", size: "size", isTooltipValue: "isTooltipValue", icon: "icon", iconColor: "iconColor", mask: "mask", maskPrefix: "maskPrefix", showMaskTyped: "showMaskTyped", maskDropSpecialCharacters: "maskDropSpecialCharacters" }, outputs: { changed: "changed", modelChange: "modelChange" }, providers: [
128
+ InputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: InputTextComponent, selector: "mrx-input-text", inputs: { fields: "fields", disabled: "disabled", required: "required", readonly: "readonly", maxlength: "maxlength", minlength: "minlength", placeholder: "placeholder", customClasses: "customClasses", size: "size", isTooltipValue: "isTooltipValue", icon: "icon", iconColor: "iconColor", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", restrictInput: "restrictInput", mask: "mask", maskPrefix: "maskPrefix", showMaskTyped: "showMaskTyped", maskDropSpecialCharacters: "maskDropSpecialCharacters" }, outputs: { changed: "changed", blurred: "blurred", modelChange: "modelChange" }, providers: [
127
129
  {
128
130
  provide: NG_VALUE_ACCESSOR,
129
131
  useExisting: forwardRef(() => InputTextComponent),
130
132
  multi: true,
131
133
  },
132
- ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"mrx-input-text\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class.mrx-input-text-with-icon]=\"icon\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [mrxCdkTooltip]=\"getTooltipValue\"\r\n [tooltipPosition]=\"'top-start'\"\r\n>\r\n <div class=\"mrx-input-text__wrapper\">\r\n <span *ngIf=\"icon\" class=\"mrx-icon mrx-input-text-icon\" [class]=\"getIconClass\"></span>\r\n\r\n <input\r\n autocomplete=\"nope\"\r\n #inputElement\r\n [type]=\"'text'\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n (blur)=\"updateSelection($event)\"\r\n [attr.title]=\"placeholder || ''\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readonly\"\r\n [attr.minlength]=\"minlength > 0 ? minlength : null\"\r\n [attr.maxlength]=\"maxlength > 0 ? maxlength : null\"\r\n [attr.placeholder]=\"!disabled && placeholder ? placeholder : ''\"\r\n [mask]=\"mask\"\r\n [prefix]=\"maskPrefix\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [dropSpecialCharacters]=\"maskDropSpecialCharacters\"\r\n />\r\n\r\n <mrx-chars-left\r\n *ngIf=\"!disabled && maxlength\"\r\n [value]=\"value\"\r\n [maxlength]=\"maxlength\">\r\n </mrx-chars-left>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"(!isValid || invalid) && isInvalidMessage\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-text.mrx-input-text{width:100%;position:relative}.mrx-input-text.mrx-input-text .mrx-input-text__wrapper{position:relative}.mrx-input-text.mrx-input-text input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s}.mrx-input-text.mrx-input-text input:focus,.mrx-input-text.mrx-input-text input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-text.mrx-input-text input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-text.mrx-input-text.mrx-input-text-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text.mrx-input-text-lg:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text.mrx-input-text-lg.mrx-input-text-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-helf) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text.mrx-input-text-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text.mrx-input-text-md:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text.mrx-input-text-md.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-helf) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text.mrx-input-text-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-text.mrx-input-text.mrx-input-text-sm:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text.mrx-input-text-sm.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-text.mrx-input-text.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-text.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-text.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-text.mrx-input-text.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-text.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-text.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-lg .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-3) - 1px);left:calc(var(--spacing-3) - 1px)}.mrx-input-text.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-md .mrx-input-text-icon,.mrx-input-text.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-sm .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-2) - 1px);left:calc(var(--spacing-2) - 1px)}.mrx-input-text.mrx-input-text.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-text.mrx-input-text.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CharsLeftComponent, selector: "mrx-chars-left", inputs: ["maxlength", "valueLength", "value"] }, { kind: "component", type: i4.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalidMessage", "customClasses"] }, { kind: "component", type: i5.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { kind: "directive", type: i6.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { kind: "directive", type: i7.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
134
+ ], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], ngImport: i0, template: "<div\r\n class=\"mrx-input-text\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.mrx-input-text-with-icon]=\"icon\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [mrxCdkTooltip]=\"getTooltipValue\"\r\n [tooltipPosition]=\"'top-start'\"\r\n>\r\n <div class=\"mrx-input-text__wrapper\">\r\n <span *ngIf=\"icon\" class=\"mrx-icon mrx-input-text-icon\" [class]=\"getIconClass\"></span>\r\n\r\n <input\r\n autocomplete=\"nope\"\r\n #inputElement\r\n [type]=\"'text'\"\r\n [id]=\"uuid\"\r\n [ngModel]=\"value\"\r\n [title]=\"placeholder || ''\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readonly\"\r\n [placeholder]=\"!disabled && placeholder ? placeholder : ''\"\r\n [mask]=\"mask\"\r\n [prefix]=\"maskPrefix\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [dropSpecialCharacters]=\"maskDropSpecialCharacters\"\r\n [minlength]=\"minlength > 0 && restrictInput ? minlength : null\"\r\n [maxlength]=\"maxlength > 0 && restrictInput ? maxlength : null\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n (blur)=\"onBlur($event)\"\r\n />\r\n\r\n <mrx-chars-left\r\n *ngIf=\"!disabled && maxlength\"\r\n [value]=\"value\"\r\n [maxlength]=\"maxlength\"\r\n ></mrx-chars-left>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-text{width:100%;position:relative}.mrx-input-text .mrx-input-text__wrapper{position:relative}.mrx-input-text input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s}.mrx-input-text input:focus,.mrx-input-text input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-text input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-text input::-webkit-input-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text input::-moz-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text input:-ms-input-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text input:-moz-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text.mrx-input-text-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text-lg:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text-lg.mrx-input-text-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text-md:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text-md.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-text.mrx-input-text-sm:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text-sm.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-text.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-text.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-lg .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-3) - 1px);left:calc(var(--spacing-3) - 1px)}.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-md .mrx-input-text-icon,.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-sm .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-2) - 1px);left:calc(var(--spacing-2) - 1px)}.mrx-input-text.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-text.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.CharsLeftComponent, selector: "mrx-chars-left", inputs: ["maxlength", "valueLength", "value"] }, { kind: "component", type: i4.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { kind: "component", type: i5.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }, { kind: "directive", type: i6.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { kind: "directive", type: i7.NgxMaskDirective, selector: "input[mask], textarea[mask]", inputs: ["mask", "specialCharacters", "patterns", "prefix", "suffix", "thousandSeparator", "decimalMarker", "dropSpecialCharacters", "hiddenInput", "showMaskTyped", "placeHolderCharacter", "shownMaskExpression", "showTemplate", "clearIfNotMatch", "validation", "separatorLimit", "allowNegativeNumbers", "leadZeroDateTime", "leadZero", "triggerOnMaskChange", "apm", "inputTransformFn", "outputTransformFn", "keepCharacterPositions"], outputs: ["maskFilled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
133
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: InputTextComponent, decorators: [{
134
136
  type: Component,
135
137
  args: [{ selector: 'mrx-input-text', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -138,7 +140,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
138
140
  useExisting: forwardRef(() => InputTextComponent),
139
141
  multi: true,
140
142
  },
141
- ], template: "<div\r\n class=\"mrx-input-text\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class.mrx-input-text-with-icon]=\"icon\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [mrxCdkTooltip]=\"getTooltipValue\"\r\n [tooltipPosition]=\"'top-start'\"\r\n>\r\n <div class=\"mrx-input-text__wrapper\">\r\n <span *ngIf=\"icon\" class=\"mrx-icon mrx-input-text-icon\" [class]=\"getIconClass\"></span>\r\n\r\n <input\r\n autocomplete=\"nope\"\r\n #inputElement\r\n [type]=\"'text'\"\r\n [ngModel]=\"value\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n (blur)=\"updateSelection($event)\"\r\n [attr.title]=\"placeholder || ''\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readonly\"\r\n [attr.minlength]=\"minlength > 0 ? minlength : null\"\r\n [attr.maxlength]=\"maxlength > 0 ? maxlength : null\"\r\n [attr.placeholder]=\"!disabled && placeholder ? placeholder : ''\"\r\n [mask]=\"mask\"\r\n [prefix]=\"maskPrefix\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [dropSpecialCharacters]=\"maskDropSpecialCharacters\"\r\n />\r\n\r\n <mrx-chars-left\r\n *ngIf=\"!disabled && maxlength\"\r\n [value]=\"value\"\r\n [maxlength]=\"maxlength\">\r\n </mrx-chars-left>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"(!isValid || invalid) && isInvalidMessage\"\r\n [invalidMessage]=\"invalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-text.mrx-input-text{width:100%;position:relative}.mrx-input-text.mrx-input-text .mrx-input-text__wrapper{position:relative}.mrx-input-text.mrx-input-text input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s}.mrx-input-text.mrx-input-text input:focus,.mrx-input-text.mrx-input-text input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-text.mrx-input-text input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-text.mrx-input-text.mrx-input-text-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text.mrx-input-text-lg:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text.mrx-input-text-lg.mrx-input-text-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-helf) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text.mrx-input-text-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text.mrx-input-text-md:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text.mrx-input-text-md.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-helf) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-helf) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text.mrx-input-text-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-text.mrx-input-text.mrx-input-text-sm:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text.mrx-input-text-sm.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-text.mrx-input-text.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-text.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-text.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-text.mrx-input-text.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-text.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-text.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-lg .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-3) - 1px);left:calc(var(--spacing-3) - 1px)}.mrx-input-text.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-md .mrx-input-text-icon,.mrx-input-text.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-sm .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-2) - 1px);left:calc(var(--spacing-2) - 1px)}.mrx-input-text.mrx-input-text.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-text.mrx-input-text.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626)}\n"] }]
143
+ ], template: "<div\r\n class=\"mrx-input-text\"\r\n [class]=\"getClasses\"\r\n [class.mrx-input-error]=\"getInvalid\"\r\n [class.mrx-input-text-with-icon]=\"icon\"\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [mrxCdkTooltip]=\"getTooltipValue\"\r\n [tooltipPosition]=\"'top-start'\"\r\n>\r\n <div class=\"mrx-input-text__wrapper\">\r\n <span *ngIf=\"icon\" class=\"mrx-icon mrx-input-text-icon\" [class]=\"getIconClass\"></span>\r\n\r\n <input\r\n autocomplete=\"nope\"\r\n #inputElement\r\n [type]=\"'text'\"\r\n [id]=\"uuid\"\r\n [ngModel]=\"value\"\r\n [title]=\"placeholder || ''\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readonly\"\r\n [placeholder]=\"!disabled && placeholder ? placeholder : ''\"\r\n [mask]=\"mask\"\r\n [prefix]=\"maskPrefix\"\r\n [showMaskTyped]=\"showMaskTyped\"\r\n [dropSpecialCharacters]=\"maskDropSpecialCharacters\"\r\n [minlength]=\"minlength > 0 && restrictInput ? minlength : null\"\r\n [maxlength]=\"maxlength > 0 && restrictInput ? maxlength : null\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n (blur)=\"onBlur($event)\"\r\n />\r\n\r\n <mrx-chars-left\r\n *ngIf=\"!disabled && maxlength\"\r\n [value]=\"value\"\r\n [maxlength]=\"maxlength\"\r\n ></mrx-chars-left>\r\n </div>\r\n\r\n <mrx-error-message\r\n *ngIf=\"getInvalid && getInvalidMessage\"\r\n [invalidMessage]=\"getInvalidMessage\"\r\n ></mrx-error-message>\r\n\r\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\r\n</div>\r\n", styles: [".mrx-input-text{width:100%;position:relative}.mrx-input-text .mrx-input-text__wrapper{position:relative}.mrx-input-text input{box-sizing:border-box;border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s}.mrx-input-text input:focus,.mrx-input-text input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-input-text input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-input-text input::-webkit-input-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text input::-moz-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text input:-ms-input-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text input:-moz-placeholder{color:var(--neutral-text-tertiary)}.mrx-input-text.mrx-input-text-lg input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text-lg:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text-lg.mrx-input-text-with-icon input{padding:calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-3) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text-md input{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-input-text.mrx-input-text-md:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text-md.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) + var(--spacing-half) - var(--border-width-default)) calc(var(--spacing-module) * 10)}.mrx-input-text.mrx-input-text-sm input{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-input-text.mrx-input-text-sm:not(.mrx-input-text-with-icon) input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4)}.mrx-input-text.mrx-input-text-sm.mrx-input-text-with-icon input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-8)}.mrx-input-text.mrx-input-error input{border-color:var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-checked-error input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-text.mrx-input-checked-error input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-input-text.mrx-input-checked-success input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-checked-success input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-lg .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-3) - 1px);left:calc(var(--spacing-3) - 1px)}.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-md .mrx-input-text-icon,.mrx-input-text.mrx-input-text-with-icon.mrx-input-text-sm .mrx-input-text-icon{position:absolute;top:calc(var(--spacing-2) - 1px);left:calc(var(--spacing-2) - 1px)}.mrx-input-text.-disabled input{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E)}.mrx-input-text.-readonly input{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626)}\n"] }]
142
144
  }], propDecorators: { fields: [{
143
145
  type: Input
144
146
  }], disabled: [{
@@ -153,12 +155,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
153
155
  type: Input
154
156
  }], placeholder: [{
155
157
  type: Input
156
- }], invalid: [{
157
- type: Input
158
- }], invalidMessage: [{
159
- type: Input
160
- }], checkInvalid: [{
161
- type: Input
162
158
  }], customClasses: [{
163
159
  type: Input
164
160
  }], size: [{
@@ -169,6 +165,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
169
165
  type: Input
170
166
  }], iconColor: [{
171
167
  type: Input
168
+ }], invalid: [{
169
+ type: Input
170
+ }], invalidMessage: [{
171
+ type: Input
172
+ }], checkInvalid: [{
173
+ type: Input
174
+ }], restrictInput: [{
175
+ type: Input
172
176
  }], mask: [{
173
177
  type: Input
174
178
  }], maskPrefix: [{
@@ -182,7 +186,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
182
186
  args: ['inputElement']
183
187
  }], changed: [{
184
188
  type: Output
189
+ }], blurred: [{
190
+ type: Output
185
191
  }], modelChange: [{
186
192
  type: Output
187
193
  }] } });
188
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsa0JBQWtCLEVBSW5CLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWdCcEMsTUFBTSxPQUFPLGtCQUFrQjtJQWIvQjtRQWNTLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBSXZDLGFBQWE7UUFDTixTQUFJLEdBQVcsTUFBTSxFQUFFLENBQUE7UUFDZCxXQUFNLEdBQVksRUFBRSxDQUFDO1FBRXJCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixtQkFBYyxHQUFzQixFQUFFLENBQUM7UUFD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O2dCQUNVLFdBQVc7c0JBQTNCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge1xyXG4gIElucHV0VGV4dEljb25Db2xvckVudW0sXHJcbiAgSW5wdXRUZXh0SWNvbkNvbG9yVHlwZXMsXHJcbiAgSW5wdXRUZXh0U2l6ZXNFbnVtLFxyXG4gIElucHV0VGV4dFNpemVzVHlwZXMsXHJcbiAgSW5wdXRUZXh0VmFsdWVUeXBlcyxcclxuICBJbnB1dFRleHRWYWx1ZVdpdGhJZFxyXG59IGZyb20gJy4vaW5wdXQtdGV4dC5lbnVtJztcclxuaW1wb3J0IHsgdjQgYXMgdXVpZHY0IH0gZnJvbSAndXVpZCc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvbXJ4LWF1dG9zYXZlL21yeC1hdXRvc2F2ZS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWlucHV0LXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC10ZXh0LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRleHRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwdWJsaWMgdmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMgPSAnJztcclxuICBwdWJsaWMgc2VsZWN0aW9uU3RhcnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgc2VsZWN0aW9uRW5kOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KClcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhsZW5ndGggPSAwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5sZW5ndGggPSAwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWRNZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja0ludmFsaWQ6IHRydWUgfCBmYWxzZSB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHNpemU6IElucHV0VGV4dFNpemVzVHlwZXMgPSAnbGFyZ2UnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc1Rvb2x0aXBWYWx1ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBwdWJsaWMgaWNvbkNvbG9yOiBJbnB1dFRleHRJY29uQ29sb3JUeXBlcyA9ICdkZWZhdWx0JztcclxuXHJcbiAgLy8gTUFTS1xyXG4gIEBJbnB1dCgpIG1hc2sgPSAnJztcclxuICBASW5wdXQoKSBtYXNrUHJlZml4ID0gJyc7XHJcbiAgQElucHV0KCkgc2hvd01hc2tUeXBlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1hc2tEcm9wU3BlY2lhbENoYXJhY3RlcnM6IGJvb2xlYW4gfCBzdHJpbmdbXSA9IHRydWU7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0RWxlbWVudCcpIGlucHV0RWxlbWVudCE6IEVsZW1lbnRSZWY7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPElucHV0VGV4dFZhbHVlVHlwZXM+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dFRleHRWYWx1ZVR5cGVzPigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJbnB1dFRleHRWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0VGV4dFZhbHVlV2l0aElkPigpO1xyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYXNlVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNWZXJpZmllZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAoXHJcbiAgICAgICF0aGlzLnJlcXVpcmVkIHx8XHJcbiAgICAgICAgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy52YWx1ZSAhPSBudWxsICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMuaXNWYWxpZClcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID8gJ21yeC1pbnB1dF9fcmVhZG9ubHknIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cclxuICAgICAgJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDpcclxuICAgICAgdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJydcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0VGV4dFNpemVzRW51bVt0aGlzLnNpemVdfSAke3RoaXMuY3VzdG9tQ2xhc3Nlc30gJHt0aGlzLnJlYWRvbmx5Q2xhc3N9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJY29uQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmljb259ICR7dGhpcy5zaXplICE9PSAnc21hbGwnID8gJ2ljb24tZm9udC0yNCcgOiAnaWNvbi1mb250LTE2J30gJHtJbnB1dFRleHRJY29uQ29sb3JFbnVtW3RoaXMuaWNvbkNvbG9yXX1gXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFRvb2x0aXBWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNUb29sdGlwVmFsdWUgPyB0aGlzLnZhbHVlIDogJydcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybWF0VmFsdWUodmFsdWU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdmFsdWUubGVuZ3RoID09PSB0aGlzLm1hc2tQcmVmaXgubGVuZ3RoID8gJycgOiB2YWx1ZVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGluc2VydFBvc2l0aW9uVGV4dCh0YWdUZXh0OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNlbGVjdGlvblN0YXJ0ICYmIHRoaXMuc2VsZWN0aW9uRW5kKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0VGV4dCA9IHRoaXMudmFsdWUgPyB0aGlzLnZhbHVlLnN1YnN0cmluZygwLCB0aGlzLnNlbGVjdGlvblN0YXJ0KSA6ICcnXHJcbiAgICAgIGNvbnN0IHNlY29uZFRleHQgPSB0aGlzLnZhbHVlLnN1YnN0cmluZyh0aGlzLnNlbGVjdGlvbkVuZCk7XHJcbiAgICAgIGNvbnN0IHRleHQgPSBmaXJzdFRleHQgKyB0YWdUZXh0ICsgc2Vjb25kVGV4dDtcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodGV4dCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gKGZpcnN0VGV4dCArIHRhZ1RleHQpLmxlbmd0aDtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IChmaXJzdFRleHQgKyB0YWdUZXh0KS5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB9LCAwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHRleHQgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZSA6ICcnICsgdGFnVGV4dFxyXG5cclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh0ZXh0KTtcclxuXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSB0ZXh0Lmxlbmd0aDtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvbkVuZCA9IHRleHQubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYmFzZVZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKHRoaXMubWlubGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiAhIXRoaXMudmFsdWUgJiYgdGhpcy52YWx1ZS5sZW5ndGggPj0gdGhpcy5taW5sZW5ndGg7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVTZWxlY3Rpb24oZXZlbnQ6IGFueSkge1xyXG4gICAgdGhpcy5zZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydDtcclxuICAgIHRoaXMuc2VsZWN0aW9uRW5kID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShvdXRzaWRlVmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpIHtcclxuICAgIHRoaXMudmFsdWUgPSBvdXRzaWRlVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZTogSW5wdXRUZXh0VmFsdWVUeXBlcykge1xyXG4gICAgdGhpcy52YWx1ZSA9IGluc2lkZVZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQodGhpcy5mb3JtYXRWYWx1ZShpbnNpZGVWYWx1ZSkpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogdGhpcy5mb3JtYXRWYWx1ZShpbnNpZGVWYWx1ZSksIGlkOiB0aGlzLnV1aWR9KVxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmZvcm1hdFZhbHVlKGluc2lkZVZhbHVlKSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJtcngtaW5wdXQtdGV4dFwiXHJcbiAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4gIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC10ZXh0LXdpdGgtaWNvbl09XCJpY29uXCJcclxuICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MuLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICBbbXJ4Q2RrVG9vbHRpcF09XCJnZXRUb29sdGlwVmFsdWVcIlxyXG4gIFt0b29sdGlwUG9zaXRpb25dPVwiJ3RvcC1zdGFydCdcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC10ZXh0X193cmFwcGVyXCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cImljb25cIiBjbGFzcz1cIm1yeC1pY29uIG1yeC1pbnB1dC10ZXh0LWljb25cIiBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzXCI+PC9zcGFuPlxyXG5cclxuICAgIDxpbnB1dFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcclxuICAgICAgI2lucHV0RWxlbWVudFxyXG4gICAgICBbdHlwZV09XCIndGV4dCdcIlxyXG4gICAgICBbbmdNb2RlbF09XCJ2YWx1ZVwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAoYmx1cik9XCJ1cGRhdGVTZWxlY3Rpb24oJGV2ZW50KVwiXHJcbiAgICAgIFthdHRyLnRpdGxlXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aCA+IDAgPyBtaW5sZW5ndGggOiBudWxsXCJcclxuICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heGxlbmd0aCA+IDAgPyBtYXhsZW5ndGggOiBudWxsXCJcclxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwiIWRpc2FibGVkICYmIHBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJ1wiXHJcbiAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICBbcHJlZml4XT1cIm1hc2tQcmVmaXhcIlxyXG4gICAgICBbc2hvd01hc2tUeXBlZF09XCJzaG93TWFza1R5cGVkXCJcclxuICAgICAgW2Ryb3BTcGVjaWFsQ2hhcmFjdGVyc109XCJtYXNrRHJvcFNwZWNpYWxDaGFyYWN0ZXJzXCJcclxuICAgIC8+XHJcblxyXG4gICAgPG1yeC1jaGFycy1sZWZ0XHJcbiAgICAgICpuZ0lmPVwiIWRpc2FibGVkICYmIG1heGxlbmd0aFwiXHJcbiAgICAgIFt2YWx1ZV09XCJ2YWx1ZVwiXHJcbiAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCI+XHJcbiAgICA8L21yeC1jaGFycy1sZWZ0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICpuZ0lmPVwiKCFpc1ZhbGlkIHx8IGludmFsaWQpICYmIGlzSW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgW2ludmFsaWRNZXNzYWdlXT1cImludmFsaWRNZXNzYWdlXCJcclxuICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgPG1yeC1zYXZlLXN0YXRlIFtpZF09XCJ1dWlkXCIgW2ZpZWxkc109XCJmaWVsZHNcIj48L21yeC1zYXZlLXN0YXRlPlxyXG48L2Rpdj5cclxuIl19
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFDTCxzQkFBc0IsRUFFdEIsa0JBQWtCLEVBSW5CLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxFQUFFLEVBQUUsSUFBSSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQWdCcEMsTUFBTSxPQUFPLGtCQUFrQjtJQWIvQjtRQWNTLFVBQUssR0FBd0IsRUFBRSxDQUFDO1FBSXZDLGFBQWE7UUFDTixTQUFJLEdBQVcsTUFBTSxFQUFFLENBQUE7UUFDZCxXQUFNLEdBQVksRUFBRSxDQUFDO1FBRXJCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxjQUFTLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsa0JBQWEsR0FBRyxFQUFFLENBQUM7UUFDbkIsU0FBSSxHQUF3QixPQUFPLENBQUM7UUFD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QkFDVSxjQUFjO3NCQUE3QixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRVUsYUFBYTtzQkFBNUIsS0FBSztnQkFHRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLHlCQUF5QjtzQkFBakMsS0FBSztnQkFFcUIsWUFBWTtzQkFBdEMsU0FBUzt1QkFBQyxjQUFjO2dCQUVSLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHtcclxuICBJbnB1dFRleHRJY29uQ29sb3JFbnVtLFxyXG4gIElucHV0VGV4dEljb25Db2xvclR5cGVzLFxyXG4gIElucHV0VGV4dFNpemVzRW51bSxcclxuICBJbnB1dFRleHRTaXplc1R5cGVzLFxyXG4gIElucHV0VGV4dFZhbHVlVHlwZXMsXHJcbiAgSW5wdXRUZXh0VmFsdWVXaXRoSWRcclxufSBmcm9tICcuL2lucHV0LXRleHQuZW51bSc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWlucHV0LXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXh0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC10ZXh0LmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dFRleHRDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBwdWJsaWMgdmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMgPSAnJztcclxuICBwdWJsaWMgc2VsZWN0aW9uU3RhcnQ6IG51bWJlciB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgc2VsZWN0aW9uRW5kOiBudW1iZXIgfCB1bmRlZmluZWQ7XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KClcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtYXhsZW5ndGggPSAwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBtaW5sZW5ndGggPSAwO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHNpemU6IElucHV0VGV4dFNpemVzVHlwZXMgPSAnbGFyZ2UnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpc1Rvb2x0aXBWYWx1ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpY29uOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuICBASW5wdXQoKSBwdWJsaWMgaWNvbkNvbG9yOiBJbnB1dFRleHRJY29uQ29sb3JUeXBlcyA9ICdkZWZhdWx0JztcclxuXHJcbiAgLy8gVkFMSURBVEVcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHJlc3RyaWN0SW5wdXQgPSB0cnVlO1xyXG5cclxuICAvLyBNQVNLXHJcbiAgQElucHV0KCkgbWFzayA9ICcnO1xyXG4gIEBJbnB1dCgpIG1hc2tQcmVmaXggPSAnJztcclxuICBASW5wdXQoKSBzaG93TWFza1R5cGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgbWFza0Ryb3BTcGVjaWFsQ2hhcmFjdGVyczogYm9vbGVhbiB8IHN0cmluZ1tdID0gdHJ1ZTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50JykgaW5wdXRFbGVtZW50ITogRWxlbWVudFJlZjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SW5wdXRUZXh0VmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0VGV4dFZhbHVlVHlwZXM+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBibHVycmVkOiBFdmVudEVtaXR0ZXI8SW5wdXRUZXh0VmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dFRleHRWYWx1ZVdpdGhJZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIG1vZGVsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8SW5wdXRUZXh0VmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dFRleHRWYWx1ZVdpdGhJZD4oKTtcclxuXHJcbiAgcHJpdmF0ZSBnZXQgX2lzSW52YWxpZFZhbHVlTGVuZ3RoKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4bGVuZ3RoIDwgdGhpcy52YWx1ZT8ubGVuZ3RoICYmIHRoaXMubWF4bGVuZ3RoID4gMFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2lzSW52YWxpZFZhbHVlTGVuZ3RoIHx8IHRoaXMuaW52YWxpZFxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJbnZhbGlkTWVzc2FnZSgpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5faXNJbnZhbGlkVmFsdWVMZW5ndGggPyAn0J/RgNC10LLRi9GI0LXQvdC+INC00L7Qv9GD0YHRgtC40LzQvtC1INC30L3QsNGH0LXQvdC40LUg0YHQuNC80LLQvtC70L7QsicgOiB0aGlzLmludmFsaWRNZXNzYWdlXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID8gJ21yeC1pbnB1dF9fcmVhZG9ubHknIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID8gJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDogdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJydcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0VGV4dFNpemVzRW51bVt0aGlzLnNpemVdfSAke3RoaXMuY3VzdG9tQ2xhc3Nlc30gJHt0aGlzLnJlYWRvbmx5Q2xhc3N9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRJY29uQ2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmljb259ICR7dGhpcy5zaXplICE9PSAnc21hbGwnID8gJ2ljb24tZm9udC0yNCcgOiAnaWNvbi1mb250LTE2J30gJHtJbnB1dFRleHRJY29uQ29sb3JFbnVtW3RoaXMuaWNvbkNvbG9yXX1gXHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFRvb2x0aXBWYWx1ZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNUb29sdGlwVmFsdWUgPyB0aGlzLnZhbHVlIDogJydcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2xlbmd0aFZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubWF4bGVuZ3RoID4gdGhpcy52YWx1ZT8ubGVuZ3RoXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZvcm1hdFZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlLmxlbmd0aCA9PT0gdGhpcy5tYXNrUHJlZml4Lmxlbmd0aCA/ICcnIDogdmFsdWVcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRQb3NpdGlvblRleHQodGFnVGV4dDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3Rpb25TdGFydCAmJiB0aGlzLnNlbGVjdGlvbkVuZCkge1xyXG4gICAgICBjb25zdCBmaXJzdFRleHQgPSB0aGlzLnZhbHVlID8gdGhpcy52YWx1ZS5zdWJzdHJpbmcoMCwgdGhpcy5zZWxlY3Rpb25TdGFydCkgOiAnJ1xyXG4gICAgICBjb25zdCBzZWNvbmRUZXh0ID0gdGhpcy52YWx1ZS5zdWJzdHJpbmcodGhpcy5zZWxlY3Rpb25FbmQpO1xyXG4gICAgICBjb25zdCB0ZXh0ID0gZmlyc3RUZXh0ICsgdGFnVGV4dCArIHNlY29uZFRleHQ7XHJcblxyXG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKHRleHQpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25TdGFydCA9IChmaXJzdFRleHQgKyB0YWdUZXh0KS5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSAoZmlyc3RUZXh0ICsgdGFnVGV4dCkubGVuZ3RoO1xyXG4gICAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfSwgMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCB0ZXh0ID0gdGhpcy52YWx1ZSA/IHRoaXMudmFsdWUgOiAnJyArIHRhZ1RleHRcclxuXHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodGV4dCk7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdGlvblN0YXJ0ID0gdGV4dC5sZW5ndGg7XHJcbiAgICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5zZWxlY3Rpb25FbmQgPSB0ZXh0Lmxlbmd0aDtcclxuICAgICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH0sIDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNlbGVjdGlvbihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0O1xyXG4gICAgdGhpcy5zZWxlY3Rpb25FbmQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kO1xyXG5cclxuICAgIHRoaXMuYmx1cnJlZC5lbWl0KClcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShvdXRzaWRlVmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpIHtcclxuICAgIHRoaXMudmFsdWUgPSBvdXRzaWRlVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZTogSW5wdXRUZXh0VmFsdWVUeXBlcykge1xyXG4gICAgdGhpcy52YWx1ZSA9IGluc2lkZVZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VkLmVtaXQodGhpcy5mb3JtYXRWYWx1ZShpbnNpZGVWYWx1ZSkpO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KHt2YWx1ZTogdGhpcy5mb3JtYXRWYWx1ZShpbnNpZGVWYWx1ZSksIGlkOiB0aGlzLnV1aWR9KVxyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmZvcm1hdFZhbHVlKGluc2lkZVZhbHVlKSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQmx1cihldmVudDogRm9jdXNFdmVudCkge1xyXG4gICAgdGhpcy51cGRhdGVTZWxlY3Rpb24oZXZlbnQpXHJcbiAgICB0aGlzLmJsdXJyZWQuZW1pdCh7dmFsdWU6IHRoaXMuZm9ybWF0VmFsdWUodGhpcy52YWx1ZSksIGlkOiB0aGlzLnV1aWR9KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJtcngtaW5wdXQtdGV4dFwiXHJcbiAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4gIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiZ2V0SW52YWxpZFwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC10ZXh0LXdpdGgtaWNvbl09XCJpY29uXCJcclxuICBbY2xhc3MuLWRpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICBbY2xhc3MuLXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICBbbXJ4Q2RrVG9vbHRpcF09XCJnZXRUb29sdGlwVmFsdWVcIlxyXG4gIFt0b29sdGlwUG9zaXRpb25dPVwiJ3RvcC1zdGFydCdcIlxyXG4+XHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC10ZXh0X193cmFwcGVyXCI+XHJcbiAgICA8c3BhbiAqbmdJZj1cImljb25cIiBjbGFzcz1cIm1yeC1pY29uIG1yeC1pbnB1dC10ZXh0LWljb25cIiBbY2xhc3NdPVwiZ2V0SWNvbkNsYXNzXCI+PC9zcGFuPlxyXG5cclxuICAgIDxpbnB1dFxyXG4gICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcclxuICAgICAgI2lucHV0RWxlbWVudFxyXG4gICAgICBbdHlwZV09XCIndGV4dCdcIlxyXG4gICAgICBbaWRdPVwidXVpZFwiXHJcbiAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcclxuICAgICAgW3RpdGxlXT1cInBsYWNlaG9sZGVyIHx8ICcnXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW3JlYWRPbmx5XT1cInJlYWRvbmx5XCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cIiFkaXNhYmxlZCAmJiBwbGFjZWhvbGRlciA/IHBsYWNlaG9sZGVyIDogJydcIlxyXG4gICAgICBbbWFza109XCJtYXNrXCJcclxuICAgICAgW3ByZWZpeF09XCJtYXNrUHJlZml4XCJcclxuICAgICAgW3Nob3dNYXNrVHlwZWRdPVwic2hvd01hc2tUeXBlZFwiXHJcbiAgICAgIFtkcm9wU3BlY2lhbENoYXJhY3RlcnNdPVwibWFza0Ryb3BTcGVjaWFsQ2hhcmFjdGVyc1wiXHJcbiAgICAgIFttaW5sZW5ndGhdPVwibWlubGVuZ3RoID4gMCAmJiByZXN0cmljdElucHV0ID8gbWlubGVuZ3RoIDogbnVsbFwiXHJcbiAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoID4gMCAmJiByZXN0cmljdElucHV0ID8gbWF4bGVuZ3RoIDogbnVsbFwiXHJcbiAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAvPlxyXG5cclxuICAgIDxtcngtY2hhcnMtbGVmdFxyXG4gICAgICAqbmdJZj1cIiFkaXNhYmxlZCAmJiBtYXhsZW5ndGhcIlxyXG4gICAgICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICAgICBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aFwiXHJcbiAgICA+PC9tcngtY2hhcnMtbGVmdD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG1yeC1lcnJvci1tZXNzYWdlXHJcbiAgICAqbmdJZj1cImdldEludmFsaWQgJiYgZ2V0SW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgW2ludmFsaWRNZXNzYWdlXT1cImdldEludmFsaWRNZXNzYWdlXCJcclxuICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgPG1yeC1zYXZlLXN0YXRlIFtpZF09XCJ1dWlkXCIgW2ZpZWxkc109XCJmaWVsZHNcIj48L21yeC1zYXZlLXN0YXRlPlxyXG48L2Rpdj5cclxuIl19