@eui/components 15.0.0-next.2 → 15.0.0-next.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 (63) hide show
  1. package/docs/components/UxPanelsComponent.html +2 -2
  2. package/docs/js/menu-wc.js +18 -18
  3. package/docs/js/menu-wc_es5.js +1 -1
  4. package/esm2020/atoms/eui-icon/eui-icon-svg.component.mjs +1 -1
  5. package/esm2020/atoms/eui-icon/eui-icon.component.mjs +2 -2
  6. package/esm2020/atoms/eui-icon-toggle/eui-icon-toggle.component.mjs +3 -3
  7. package/esm2020/layout/eui-toolbar/toolbar.component.mjs +2 -2
  8. package/esm2020/layout/eui-user-profile/user-profile-menu/user-profile-menu.component.mjs +2 -2
  9. package/esm2020/legacy/atomic/ux-a-toolbar-filter/ux-a-toolbar-filter.component.mjs +2 -2
  10. package/esm2020/legacy/ux-card/ux-card.component.mjs +4 -4
  11. package/esm2020/legacy/ux-dropdown-button/ux-dropdown-button.component.mjs +2 -2
  12. package/esm2020/legacy/ux-form-control/ux-form-control.component.mjs +2 -2
  13. package/esm2020/legacy/ux-form-group/ux-form-group.component.mjs +2 -2
  14. package/esm2020/legacy/ux-modal/ux-modal.component.mjs +2 -1
  15. package/esm2020/legacy/ux-panel/ux-panel.component.mjs +2 -2
  16. package/esm2020/legacy/ux-panel/ux-panels.component.mjs +5 -5
  17. package/esm2020/shared/input.directive.mjs +2 -2
  18. package/fesm2015/eui-components-atoms-eui-icon-toggle.mjs +2 -2
  19. package/fesm2015/eui-components-atoms-eui-icon-toggle.mjs.map +1 -1
  20. package/fesm2015/eui-components-atoms-eui-icon.mjs +1 -1
  21. package/fesm2015/eui-components-atoms-eui-icon.mjs.map +1 -1
  22. package/fesm2015/eui-components-layout.mjs +3 -3
  23. package/fesm2015/eui-components-layout.mjs.map +1 -1
  24. package/fesm2015/eui-components-legacy-atomic.mjs +2 -2
  25. package/fesm2015/eui-components-legacy-atomic.mjs.map +1 -1
  26. package/fesm2015/eui-components-legacy-ux-card.mjs +3 -3
  27. package/fesm2015/eui-components-legacy-ux-card.mjs.map +1 -1
  28. package/fesm2015/eui-components-legacy-ux-dropdown-button.mjs +1 -1
  29. package/fesm2015/eui-components-legacy-ux-dropdown-button.mjs.map +1 -1
  30. package/fesm2015/eui-components-legacy-ux-form-control.mjs +2 -2
  31. package/fesm2015/eui-components-legacy-ux-form-control.mjs.map +1 -1
  32. package/fesm2015/eui-components-legacy-ux-form-group.mjs +2 -2
  33. package/fesm2015/eui-components-legacy-ux-form-group.mjs.map +1 -1
  34. package/fesm2015/eui-components-legacy-ux-modal.mjs +1 -0
  35. package/fesm2015/eui-components-legacy-ux-modal.mjs.map +1 -1
  36. package/fesm2015/eui-components-legacy-ux-panel.mjs +6 -6
  37. package/fesm2015/eui-components-legacy-ux-panel.mjs.map +1 -1
  38. package/fesm2015/eui-components-shared.mjs +1 -1
  39. package/fesm2015/eui-components-shared.mjs.map +1 -1
  40. package/fesm2020/eui-components-atoms-eui-icon-toggle.mjs +2 -2
  41. package/fesm2020/eui-components-atoms-eui-icon-toggle.mjs.map +1 -1
  42. package/fesm2020/eui-components-atoms-eui-icon.mjs +1 -1
  43. package/fesm2020/eui-components-atoms-eui-icon.mjs.map +1 -1
  44. package/fesm2020/eui-components-layout.mjs +3 -3
  45. package/fesm2020/eui-components-layout.mjs.map +1 -1
  46. package/fesm2020/eui-components-legacy-atomic.mjs +2 -2
  47. package/fesm2020/eui-components-legacy-atomic.mjs.map +1 -1
  48. package/fesm2020/eui-components-legacy-ux-card.mjs +3 -3
  49. package/fesm2020/eui-components-legacy-ux-card.mjs.map +1 -1
  50. package/fesm2020/eui-components-legacy-ux-dropdown-button.mjs +1 -1
  51. package/fesm2020/eui-components-legacy-ux-dropdown-button.mjs.map +1 -1
  52. package/fesm2020/eui-components-legacy-ux-form-control.mjs +2 -2
  53. package/fesm2020/eui-components-legacy-ux-form-control.mjs.map +1 -1
  54. package/fesm2020/eui-components-legacy-ux-form-group.mjs +2 -2
  55. package/fesm2020/eui-components-legacy-ux-form-group.mjs.map +1 -1
  56. package/fesm2020/eui-components-legacy-ux-modal.mjs +1 -0
  57. package/fesm2020/eui-components-legacy-ux-modal.mjs.map +1 -1
  58. package/fesm2020/eui-components-legacy-ux-panel.mjs +6 -6
  59. package/fesm2020/eui-components-legacy-ux-panel.mjs.map +1 -1
  60. package/fesm2020/eui-components-shared.mjs +1 -1
  61. package/fesm2020/eui-components-shared.mjs.map +1 -1
  62. package/legacy/ux-modal/ux-modal.component.d.ts.map +1 -1
  63. package/package.json +1 -1
@@ -39,7 +39,7 @@ export class UxCardComponent {
39
39
  this.linkSelected = new EventEmitter();
40
40
  this.onCollapse = new EventEmitter();
41
41
  this.stateClasses = '';
42
- this.localMenuClasses = 'eui-u-visibility-visible';
42
+ this.localMenuClasses = 'eui-u-visibility-visible'; // TODO v15 remove usage of utility in cmp - prefer mixin through style
43
43
  this.statusIndicatorIconClass = '';
44
44
  }
45
45
  get shouldKeepLocalMenuLayout() { return this._shouldKeepLocalMenuLayout; }
@@ -151,10 +151,10 @@ export class UxCardComponent {
151
151
  }
152
152
  updateLocalMenuClasses() {
153
153
  if (this.isActionsLinksEmpty) {
154
- this.localMenuClasses = 'eui-u-visibility-hidden';
154
+ this.localMenuClasses = 'eui-u-visibility-hidden'; // TODO v15 remove usage of utility in cmp - prefer mixin through style
155
155
  }
156
156
  else {
157
- this.localMenuClasses = 'eui-u-visibility-visible';
157
+ this.localMenuClasses = 'eui-u-visibility-visible'; // TODO v15 remove usage of utility in cmp - prefer mixin through style
158
158
  }
159
159
  }
160
160
  updateIndicatorStateClasses() {
@@ -327,4 +327,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
327
327
  ],
328
328
  }]
329
329
  }] });
330
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9sZWdhY3kvdXgtY2FyZC91eC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xlZ2FjeS91eC1jYXJkL3V4LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFFBQVEsRUFFUixNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUTVFLE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBWVksK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBSW5DLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUkxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUl0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUlwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUl2QixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUk3QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUl4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixr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K0IsYUE1TzFCLGVBQWUsRUFzTmYsdUJBQXVCLEVBSXZCLDBCQUEwQixFQUkxQixvQ0FBb0MsRUFJcEMsZ0NBQWdDLEVBa0JyQyxvQkFBb0I7NklBV2YscUJBQXFCLFlBdkIxQixZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QiwrQkFBK0I7UUFDL0IsK0JBQStCO2tHQW1CMUIscUJBQXFCO2tCQXpCakMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsK0JBQStCO3dCQUMvQiwrQkFBK0I7cUJBQ2xDO29CQUNELE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixvQ0FBb0M7d0JBQ3BDLGdDQUFnQzt3QkFDaEMsb0JBQW9CO3FCQUN2QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsb0NBQW9DO3dCQUNwQyxnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjtxQkFDdkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVeExpbmsgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgVXhJY29uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2xlZ2FjeS9hdG9taWMnO1xuaW1wb3J0IHsgVXhCYWRnZUNvbXBvbmVudE1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9sZWdhY3kvdXgtYmFkZ2UnO1xuaW1wb3J0IHsgVXhEcm9wZG93bkJ1dHRvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9sZWdhY3kvdXgtZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IFV4RGlzYWJsZUNvbnRlbnRDb21wb25lbnRNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvbGVnYWN5L3V4LWRpc2FibGUtY29udGVudCc7XG5pbXBvcnQgeyBVeENhcmRHcm91cERpcmVjdGl2ZSB9IGZyb20gJy4vdXgtY2FyZC1ncm91cC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3V4LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91eC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBVeENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNob3VsZEtlZXBMb2NhbE1lbnVMYXlvdXQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9zaG91bGRLZWVwTG9jYWxNZW51TGF5b3V0OyB9XG4gICAgc2V0IHNob3VsZEtlZXBMb2NhbE1lbnVMYXlvdXQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9zaG91bGRLZWVwTG9jYWxNZW51TGF5b3V0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX3Nob3VsZEtlZXBMb2NhbE1lbnVMYXlvdXQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0NhcmRCb2R5SGlkZGVuKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNDYXJkQm9keUhpZGRlbjsgfVxuICAgIHNldCBpc0NhcmRCb2R5SGlkZGVuKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNDYXJkQm9keUhpZGRlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0NhcmRCb2R5SGlkZGVuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTZWxlY3RhYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTZWxlY3RhYmxlOyB9XG4gICAgc2V0IGlzU2VsZWN0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzU2VsZWN0YWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1NlbGVjdGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTZWxlY3RlZDsgfVxuICAgIHNldCBpc1NlbGVjdGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNTZWxlY3RlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDb2xsYXBzaWJsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzQ29sbGFwc2libGU7IH1cbiAgICBzZXQgaXNDb2xsYXBzaWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzQ29sbGFwc2libGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNDb2xsYXBzaWJsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNDb2xsYXBzZWQ7IH1cbiAgICBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc0NvbGxhcHNlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0NvbGxhcHNlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNGYXZvdXJpdGFibGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Zhdm91cml0YWJsZTsgfVxuICAgIHNldCBpc0Zhdm91cml0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzRmF2b3VyaXRhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzRmF2b3VyaXRhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNGYXZvdXJpdGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Zhdm91cml0ZTsgfVxuICAgIHNldCBpc0Zhdm91cml0ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzRmF2b3VyaXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzRmF2b3VyaXRlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNVcmdlbnRhYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNVcmdlbnRhYmxlOyB9XG4gICAgc2V0IGlzVXJnZW50YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzVXJnZW50YWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1VyZ2VudGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1VyZ2VudCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzVXJnZW50OyB9XG4gICAgc2V0IGlzVXJnZW50KHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNVcmdlbnQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNVcmdlbnQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc011dGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNNdXRlZDsgfVxuICAgIHNldCBpc011dGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNNdXRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc011dGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgc3RhdHVzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3RhdHVzVHlwZUNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBzdGF0dXNMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvY2FsTWVudUxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYWN0aW9uc0xpbmtzOiBVeExpbmtbXSA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFjdGlvbnNFbmFibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fYWN0aW9uc0VuYWJsZWQ7IH1cbiAgICBzZXQgYWN0aW9uc0VuYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9hY3Rpb25zRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9hY3Rpb25zRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzU3RhdHVzSW5kaWNhdG9yKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faGFzU3RhdHVzSW5kaWNhdG9yOyB9XG4gICAgc2V0IGhhc1N0YXR1c0luZGljYXRvcih2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2hhc1N0YXR1c0luZGljYXRvciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9oYXNTdGF0dXNJbmRpY2F0b3IgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzdGF0dXNJbmRpY2F0b3JUeXBlQ2xhc3M6IHN0cmluZyA9ICd3YXJuaW5nJztcbiAgICBASW5wdXQoKSBleHBhbmRMYWJlbDogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgY29sbGFwc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBlMmVBdHRyOiBzdHJpbmcgPSAndXgtY2FyZCc7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmF2b3VyaXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSB1cmdlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbGlua1NlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VXhMaW5rPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25Db2xsYXBzZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgc3RhdGVDbGFzc2VzOiBzdHJpbmcgPSAnJztcbiAgICBnZW5lcmF0ZWRJZDogc3RyaW5nO1xuXG4gICAgbG9jYWxNZW51Q2xhc3Nlczogc3RyaW5nID0gJ2V1aS11LXZpc2liaWxpdHktdmlzaWJsZSc7XG4gICAgc3RhdHVzSW5kaWNhdG9ySWNvbkNsYXNzID0gJyc7XG5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT5cbiAgICAgICAgVXhDYXJkVGl0bGVUYWdEaXJlY3RpdmUpLFxuICAgICkgY3VzdG9tVGl0bGU6IFF1ZXJ5TGlzdDxVeENhcmRUaXRsZVRhZ0RpcmVjdGl2ZT47XG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+XG4gICAgICAgIFV4Q2FyZFN1YlRpdGxlVGFnRGlyZWN0aXZlKSxcbiAgICApIGN1c3RvbVN1YlRpdGxlOiBRdWVyeUxpc3Q8VXhDYXJkU3ViVGl0bGVUYWdEaXJlY3RpdmU+O1xuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PlxuICAgICAgICBVeENhcmRIZWFkZXJSaWdodENvbnRlbnRUYWdEaXJlY3RpdmUpLFxuICAgICkgY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50OiBRdWVyeUxpc3Q8VXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlPjtcbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT5cbiAgICAgICAgVXhDYXJkSGVhZGVyTGVmdENvbnRlbnREaXJlY3RpdmUpLFxuICAgICkgY3VzdG9tSGVhZGVyTGVmdENvbnRlbnQ6IFF1ZXJ5TGlzdDxVeENhcmRIZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKCdib2R5Q29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGJvZHlDb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIGdldCBhcmVBY3Rpb25zRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnNFbmFibGVkID09PSBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgaXNBY3Rpb25zTGlua3NFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmFjdGlvbnNMaW5rcyB8fCB0aGlzLmFjdGlvbnNMaW5rcy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0IHNob3VsZFJlbW92ZUxvY2FsTWVudSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvdWxkS2VlcExvY2FsTWVudUxheW91dCA9PT0gZmFsc2UgJiYgdGhpcy5pc0FjdGlvbnNMaW5rc0VtcHR5ID09PSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNTZWxlY3RlZCB8fCBjaGFuZ2VzLmlzTXV0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5hY3Rpb25zTGlua3MpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxNZW51Q2xhc3NlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubG9jYWxNZW51TGF5b3V0VW5DaGFuZ2VkV2hlbkhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NhbE1lbnVDbGFzc2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5zdGF0dXNJbmRpY2F0b3JUeXBlQ2xhc3MpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5kaWNhdG9yU3RhdGVDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbE1lbnVMYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbE1lbnVMYWJlbCA9ICdBY3Rpb25zJzsgICAgLy8gMkRPIC0gR2V0IGZyb20gdHJhbnNsYXRpb25zXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RhYmxlICYmICF0aGlzLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlZElkID0gJ2NoZWNrYm94LScgKyAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCkgKyAxKS50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRJZCA9IHRoaXMuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbmRpY2F0b3Igc3RhdHVzIGljb24gY2xhc3NcbiAgICAgICAgdGhpcy51cGRhdGVJbmRpY2F0b3JTdGF0ZUNsYXNzZXMoKTtcblxuICAgICAgICAvLyBIZWFkZXIgc3RhdHVzIHN0YXRlIGNsYXNzXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5ib2R5Q29udGFpbmVyRWxlbWVudCAmJlxuICAgICAgICAgICAgdGhpcy5ib2R5Q29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50LmlubmVySFRNTC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuYm9keUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lclRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHlDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndXgtY2FyZF9fYm9keS0tbm8tY29udGVudCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3QoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZCA9ICF0aGlzLmlzU2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlRmF2b3VyaXRlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuYXJlQWN0aW9uc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhdm91cml0ZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub2dnbGVVcmdlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5hcmVBY3Rpb25zRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXJnZW50LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTGlua1NlbGVjdGVkKGV2ZW50OiBVeExpbmspIHtcbiAgICAgICAgaWYgKCF0aGlzLmFyZUFjdGlvbnNEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvZ2dsZUNvbGxhcHNlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gIXRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMub25Db2xsYXBzZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3RhdGVDbGFzc2VzKCkge1xuICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyA9ICcnO1xuICAgICAgICBpZiAodGhpcy5pc011dGVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyArPSAndXgtY2FyZC0tbXV0ZWQgJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyArPSAndXgtY2FyZC0tc2VsZWN0ZWQgJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tVGl0bGUgJiYgIXRoaXMuY3VzdG9tU3ViVGl0bGUgJiYgIXRoaXMuY3VzdG9tSGVhZGVyTGVmdENvbnRlbnQgJiYgIXRoaXMuY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyArPSAndXgtY2FyZC0tbm8taGVhZGVyICc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxvY2FsTWVudUNsYXNzZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aW9uc0xpbmtzRW1wdHkpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxNZW51Q2xhc3NlcyA9ICdldWktdS12aXNpYmlsaXR5LWhpZGRlbic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsTWVudUNsYXNzZXMgPSAnZXVpLXUtdmlzaWJpbGl0eS12aXNpYmxlJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSW5kaWNhdG9yU3RhdGVDbGFzc2VzKCkge1xuICAgICAgICB0aGlzLnN0YXR1c0luZGljYXRvckljb25DbGFzcyA9ICcnO1xuICAgICAgICBpZiAodGhpcy5zdGF0dXNJbmRpY2F0b3JUeXBlQ2xhc3MgPT09ICd3YXJuaW5nJykge1xuICAgICAgICAgICAgdGhpcy5zdGF0dXNJbmRpY2F0b3JJY29uQ2xhc3MgPSAnZXhjbGFtYXRpb24nO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdHVzSW5kaWNhdG9yVHlwZUNsYXNzID09PSAnZGFuZ2VyJykge1xuICAgICAgICAgICAgdGhpcy5zdGF0dXNJbmRpY2F0b3JJY29uQ2xhc3MgPSAndGltZXMnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdHVzSW5kaWNhdG9yVHlwZUNsYXNzID09PSAnaW5mbycpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzSW5kaWNhdG9ySWNvbkNsYXNzID0gJ2luZm8nO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdHVzSW5kaWNhdG9yVHlwZUNsYXNzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzSW5kaWNhdG9ySWNvbkNsYXNzID0gJ2NoZWNrJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAndXhDYXJkVGl0bGUnfSlcbmV4cG9ydCBjbGFzcyBVeENhcmRUaXRsZVRhZ0RpcmVjdGl2ZSB7XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAndXhDYXJkU3ViVGl0bGUnfSlcbmV4cG9ydCBjbGFzcyBVeENhcmRTdWJUaXRsZVRhZ0RpcmVjdGl2ZSB7XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAndXhDYXJkSGVhZGVyUmlnaHRDb250ZW50J30pXG5leHBvcnQgY2xhc3MgVXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlIHtcbn1cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICd1eENhcmRIZWFkZXJMZWZ0Q29udGVudCd9KVxuZXhwb3J0IGNsYXNzIFV4Q2FyZEhlYWRlckxlZnRDb250ZW50RGlyZWN0aXZlIHtcbn1cbi8qIGVzbGludC1lbmFibGUgKi9cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVXhJY29uQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBVeEJhZGdlQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBVeERpc2FibGVDb250ZW50Q29tcG9uZW50TW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBVeENhcmRDb21wb25lbnQsXG4gICAgICAgIFV4Q2FyZFRpdGxlVGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRTdWJUaXRsZVRhZ0RpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRIZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkR3JvdXBEaXJlY3RpdmVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBVeENhcmRDb21wb25lbnQsXG4gICAgICAgIFV4Q2FyZFRpdGxlVGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRTdWJUaXRsZVRhZ0RpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRIZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkR3JvdXBEaXJlY3RpdmVcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBVeENhcmRDb21wb25lbnRNb2R1bGUge1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwidXgtY2FyZCB7e3N0YXRlQ2xhc3Nlc319IHV4LWNhcmQtLXt7c3RhdHVzVHlwZUNsYXNzfX0ge3tzdHlsZUNsYXNzfX1cIiB0YWJpbmRleD1cIjBcIiBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJoYXNTdGF0dXNJbmRpY2F0b3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItc3RhdHVzLWluZGljYXRvciBldWktdS1iZy1jb2xvci17e3N0YXR1c0luZGljYXRvclR5cGVDbGFzc319LWRhcmtcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtY2FyZF9faGVhZGVyLXN0YXR1cy1pbmRpY2F0b3ItaWNvbiBldWktaWNvbiBldWktaWNvbi17e3N0YXR1c0luZGljYXRvckljb25DbGFzc319XCI+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1NlbGVjdGFibGUgfHwgaXNGYXZvdXJpdGFibGUgfHwgaXNVcmdlbnRhYmxlIHx8IGN1c3RvbUhlYWRlckxlZnRDb250ZW50XCIgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItbGVmdC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTZWxlY3RhYmxlXCIgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItbGVmdC1jb250ZW50LXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImlzU2VsZWN0ZWRcIiBpZD1cInt7IGdlbmVyYXRlZElkIH19XCIgbmFtZT1cImNoZWNrYm94XCIgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJ1eC1pbnB1dF9fY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudClcIiBjaGVja2VkPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIiFpc1NlbGVjdGVkXCIgaWQ9XCJ7eyBnZW5lcmF0ZWRJZCB9fVwiIG5hbWU9XCJjaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwidXgtaW5wdXRfX2NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInt7IGdlbmVyYXRlZElkIH19XCIgY2xhc3M9XCJwLTBcIj48L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dXgtYS1pY29uICpuZ0lmPVwiaXNGYXZvdXJpdGFibGVcIiBbaXNSb3VuZGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZXVpLXUtY29sb3ItYWNjZW50LWRhcmsnOiBpc0Zhdm91cml0ZSwgJ2V1aS11LWNvbG9yLWdyZXknOiAhaXNGYXZvdXJpdGUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLXN0YXJcIiAoY2xpY2spPVwib25Ub2dnbGVGYXZvdXJpdGUoJGV2ZW50KVwiPjwvdXgtYS1pY29uPlxuICAgICAgICAgICAgPHV4LWEtaWNvbiAqbmdJZj1cImlzVXJnZW50YWJsZVwiIFtpc1JvdW5kZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdldWktdS1jb2xvci1hY2NlbnQtZGFyayc6IGlzVXJnZW50LCAnZXVpLXUtY29sb3ItZ3JleSc6ICFpc1VyZ2VudCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwiZXVpLWljb24gZXVpLWljb24tZmxhZ1wiIChjbGljayk9XCJvblRvZ2dsZVVyZ2VudCgkZXZlbnQpXCI+PC91eC1hLWljb24+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ1eENhcmRIZWFkZXJMZWZ0Q29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci10aXRsZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci10aXRsZS1tYWluXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidXhDYXJkVGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXN0b21UaXRsZSAmJiBjdXN0b21TdWJUaXRsZVwiIGNsYXNzPVwidXgtY2FyZF9faGVhZGVyLXRpdGxlLXN1YlwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInV4Q2FyZFN1YlRpdGxlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzdGF0dXMgfHwgKGFjdGlvbnNMaW5rcyAmJiBhY3Rpb25zTGlua3MubGVuZ3RoID4gMCkgfHwgY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50XCJcbiAgICAgICAgICAgICBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci1yaWdodC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50XCIgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItcmlnaHQtY29udGVudF9fY3VzdG9tLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ1eENhcmRIZWFkZXJSaWdodENvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdGF0dXNcIiBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci1yaWdodC1jb250ZW50X19zdGF0dXNcIj5cbiAgICAgICAgICAgICAgICA8dXgtYmFkZ2UgW2lzUGlsbF09XCJ0cnVlXCIgW2lzU21hbGxdPVwidHJ1ZVwiIFt0eXBlQ2xhc3NdPVwic3RhdHVzVHlwZUNsYXNzXCI+e3sgc3RhdHVzIH19PC91eC1iYWRnZT5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzTGFiZWxcIiBjbGFzcz1cImV1aS11LWZvbnQtc2l6ZS1zIG10LTFcIj57eyBzdGF0dXNMYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNob3VsZFJlbW92ZUxvY2FsTWVudVwiIGNsYXNzPVwidXgtY2FyZF9faGVhZGVyLXJpZ2h0LWNvbnRlbnRfX2xvY2FsLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8dXgtZGlzYWJsZS1jb250ZW50IFtpc0Rpc2FibGVkXT1cImFyZUFjdGlvbnNEaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8dXgtZHJvcGRvd24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNPdXRsaW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzU21hbGxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlQ2xhc3M9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cImxvY2FsTWVudUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImxvY2FsTWVudUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLW1vcmUtdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtzXT1cImFjdGlvbnNMaW5rc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobGlua1NlbGVjdGVkKT1cIm9uTGlua1NlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC91eC1kcm9wZG93bi1idXR0b24+XG4gICAgICAgICAgICAgICAgPC91eC1kaXNhYmxlLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ2FyZEJvZHlIaWRkZW4gJiYgKCFpc0NvbGxhcHNlZCB8fCAhaXNDb2xsYXBzaWJsZSlcIj5cbiAgICAgICAgPGRpdiAjYm9keUNvbnRhaW5lciBjbGFzcz1cInV4LWNhcmRfX2JvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNDb2xsYXBzaWJsZVwiIGNsYXNzPVwidXgtY2FyZF9fZXhwYW5kLXRyaWdnZXJcIiAoY2xpY2spPVwib25Ub2dnbGVDb2xsYXBzZSgkZXZlbnQpXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDb2xsYXBzZWRcIiBjbGFzcz1cInV4LWNhcmRfX2V4cGFuZC10cmlnZ2VyLXRvZ2dsZVwiPnt7ZXhwYW5kTGFiZWx9fSA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJldWktaWNvbiBldWktaWNvbi1hbmdsZS1kb3duIHV4LWNhcmRfX2V4cGFuZC1pY29uXCI+PC9zcGFuPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNDb2xsYXBzZWRcIiBjbGFzcz1cInV4LWNhcmRfX2V4cGFuZC10cmlnZ2VyLXRvZ2dsZVwiPnt7Y29sbGFwc2VMYWJlbH19IDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLWFuZ2xlLXVwIHV4LWNhcmRfX2V4cGFuZC1pY29uXCI+PC9zcGFuPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
330
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9sZWdhY3kvdXgtY2FyZC91eC1jYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xlZ2FjeS91eC1jYXJkL3V4LWNhcmQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdILFNBQVMsRUFDVCxZQUFZLEVBQ1osU0FBUyxFQUVULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFFBQVEsRUFFUixNQUFNLEVBR04sU0FBUyxFQUNULGlCQUFpQixHQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDdEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDNUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHFCQUFxQixFQUFnQixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7O0FBUTVFLE1BQU0sT0FBTyxlQUFlO0lBTjVCO1FBWVksK0JBQTBCLEdBQUcsS0FBSyxDQUFDO1FBSW5DLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUkxQixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUl0QixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUlwQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUl2QixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUk3QixvQkFBZSxHQUFHLEtBQUssQ0FBQztRQUl4QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUlyQixr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UUFDckIsc0JBQXNCO1FBQ3RCLCtCQUErQjtRQUMvQiwrQkFBK0IsYUE1TzFCLGVBQWUsRUFzTmYsdUJBQXVCLEVBSXZCLDBCQUEwQixFQUkxQixvQ0FBb0MsRUFJcEMsZ0NBQWdDLEVBa0JyQyxvQkFBb0I7NklBV2YscUJBQXFCLFlBdkIxQixZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLHNCQUFzQjtRQUN0QiwrQkFBK0I7UUFDL0IsK0JBQStCO2tHQW1CMUIscUJBQXFCO2tCQXpCakMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLHNCQUFzQjt3QkFDdEIsK0JBQStCO3dCQUMvQiwrQkFBK0I7cUJBQ2xDO29CQUNELE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLHVCQUF1Qjt3QkFDdkIsMEJBQTBCO3dCQUMxQixvQ0FBb0M7d0JBQ3BDLGdDQUFnQzt3QkFDaEMsb0JBQW9CO3FCQUN2QjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1YsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLDBCQUEwQjt3QkFDMUIsb0NBQW9DO3dCQUNwQyxnQ0FBZ0M7d0JBQ2hDLG9CQUFvQjtxQkFDdkI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBmb3J3YXJkUmVmLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVeExpbmsgfSBmcm9tICdAZXVpL2NvcmUnO1xuaW1wb3J0IHsgVXhJY29uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2xlZ2FjeS9hdG9taWMnO1xuaW1wb3J0IHsgVXhCYWRnZUNvbXBvbmVudE1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9sZWdhY3kvdXgtYmFkZ2UnO1xuaW1wb3J0IHsgVXhEcm9wZG93bkJ1dHRvbkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJ0BldWkvY29tcG9uZW50cy9sZWdhY3kvdXgtZHJvcGRvd24tYnV0dG9uJztcbmltcG9ydCB7IFV4RGlzYWJsZUNvbnRlbnRDb21wb25lbnRNb2R1bGUgfSBmcm9tICdAZXVpL2NvbXBvbmVudHMvbGVnYWN5L3V4LWRpc2FibGUtY29udGVudCc7XG5pbXBvcnQgeyBVeENhcmRHcm91cERpcmVjdGl2ZSB9IGZyb20gJy4vdXgtY2FyZC1ncm91cC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3V4LWNhcmQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91eC1jYXJkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zdHlsZXMvX2luZGV4LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBVeENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IHNob3VsZEtlZXBMb2NhbE1lbnVMYXlvdXQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9zaG91bGRLZWVwTG9jYWxNZW51TGF5b3V0OyB9XG4gICAgc2V0IHNob3VsZEtlZXBMb2NhbE1lbnVMYXlvdXQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9zaG91bGRLZWVwTG9jYWxNZW51TGF5b3V0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX3Nob3VsZEtlZXBMb2NhbE1lbnVMYXlvdXQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0NhcmRCb2R5SGlkZGVuKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNDYXJkQm9keUhpZGRlbjsgfVxuICAgIHNldCBpc0NhcmRCb2R5SGlkZGVuKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNDYXJkQm9keUhpZGRlbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0NhcmRCb2R5SGlkZGVuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTZWxlY3RhYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTZWxlY3RhYmxlOyB9XG4gICAgc2V0IGlzU2VsZWN0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzU2VsZWN0YWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1NlbGVjdGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1NlbGVjdGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTZWxlY3RlZDsgfVxuICAgIHNldCBpc1NlbGVjdGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNTZWxlY3RlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1NlbGVjdGVkID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNDb2xsYXBzaWJsZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzQ29sbGFwc2libGU7IH1cbiAgICBzZXQgaXNDb2xsYXBzaWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzQ29sbGFwc2libGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNDb2xsYXBzaWJsZSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzQ29sbGFwc2VkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNDb2xsYXBzZWQ7IH1cbiAgICBzZXQgaXNDb2xsYXBzZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc0NvbGxhcHNlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0NvbGxhcHNlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNGYXZvdXJpdGFibGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Zhdm91cml0YWJsZTsgfVxuICAgIHNldCBpc0Zhdm91cml0YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzRmF2b3VyaXRhYmxlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzRmF2b3VyaXRhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNGYXZvdXJpdGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Zhdm91cml0ZTsgfVxuICAgIHNldCBpc0Zhdm91cml0ZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzRmF2b3VyaXRlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzRmF2b3VyaXRlID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNVcmdlbnRhYmxlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNVcmdlbnRhYmxlOyB9XG4gICAgc2V0IGlzVXJnZW50YWJsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzVXJnZW50YWJsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1VyZ2VudGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1VyZ2VudCgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzVXJnZW50OyB9XG4gICAgc2V0IGlzVXJnZW50KHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNVcmdlbnQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNVcmdlbnQgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc011dGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNNdXRlZDsgfVxuICAgIHNldCBpc011dGVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNNdXRlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc011dGVkID0gZmFsc2U7XG4gICAgQElucHV0KCkgc3RhdHVzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgc3RhdHVzVHlwZUNsYXNzOiBzdHJpbmcgPSAnJztcbiAgICBASW5wdXQoKSBzdGF0dXNMYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxvY2FsTWVudUxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgYWN0aW9uc0xpbmtzOiBVeExpbmtbXSA9IFtdO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGFjdGlvbnNFbmFibGVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5fYWN0aW9uc0VuYWJsZWQ7IH1cbiAgICBzZXQgYWN0aW9uc0VuYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9hY3Rpb25zRW5hYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9hY3Rpb25zRW5hYmxlZDogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzU3RhdHVzSW5kaWNhdG9yKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faGFzU3RhdHVzSW5kaWNhdG9yOyB9XG4gICAgc2V0IGhhc1N0YXR1c0luZGljYXRvcih2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2hhc1N0YXR1c0luZGljYXRvciA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9oYXNTdGF0dXNJbmRpY2F0b3IgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzdGF0dXNJbmRpY2F0b3JUeXBlQ2xhc3M6IHN0cmluZyA9ICd3YXJuaW5nJztcbiAgICBASW5wdXQoKSBleHBhbmRMYWJlbDogc3RyaW5nID0gJyc7XG4gICAgQElucHV0KCkgY29sbGFwc2VMYWJlbDogc3RyaW5nID0gJyc7XG5cbiAgICBASW5wdXQoKSBlMmVBdHRyOiBzdHJpbmcgPSAndXgtY2FyZCc7XG5cbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgZmF2b3VyaXRlZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIEBPdXRwdXQoKSB1cmdlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbGlua1NlbGVjdGVkOiBFdmVudEVtaXR0ZXI8VXhMaW5rPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgb25Db2xsYXBzZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgc3RhdGVDbGFzc2VzOiBzdHJpbmcgPSAnJztcbiAgICBnZW5lcmF0ZWRJZDogc3RyaW5nO1xuXG4gICAgbG9jYWxNZW51Q2xhc3Nlczogc3RyaW5nID0gJ2V1aS11LXZpc2liaWxpdHktdmlzaWJsZSc7IC8vIFRPRE8gdjE1IHJlbW92ZSB1c2FnZSBvZiB1dGlsaXR5IGluIGNtcCAtIHByZWZlciBtaXhpbiB0aHJvdWdoIHN0eWxlXG4gICAgc3RhdHVzSW5kaWNhdG9ySWNvbkNsYXNzID0gJyc7XG5cbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT5cbiAgICAgICAgVXhDYXJkVGl0bGVUYWdEaXJlY3RpdmUpLFxuICAgICkgY3VzdG9tVGl0bGU6IFF1ZXJ5TGlzdDxVeENhcmRUaXRsZVRhZ0RpcmVjdGl2ZT47XG4gICAgQENvbnRlbnRDaGlsZChmb3J3YXJkUmVmKCgpID0+XG4gICAgICAgIFV4Q2FyZFN1YlRpdGxlVGFnRGlyZWN0aXZlKSxcbiAgICApIGN1c3RvbVN1YlRpdGxlOiBRdWVyeUxpc3Q8VXhDYXJkU3ViVGl0bGVUYWdEaXJlY3RpdmU+O1xuICAgIEBDb250ZW50Q2hpbGQoZm9yd2FyZFJlZigoKSA9PlxuICAgICAgICBVeENhcmRIZWFkZXJSaWdodENvbnRlbnRUYWdEaXJlY3RpdmUpLFxuICAgICkgY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50OiBRdWVyeUxpc3Q8VXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlPjtcbiAgICBAQ29udGVudENoaWxkKGZvcndhcmRSZWYoKCkgPT5cbiAgICAgICAgVXhDYXJkSGVhZGVyTGVmdENvbnRlbnREaXJlY3RpdmUpLFxuICAgICkgY3VzdG9tSGVhZGVyTGVmdENvbnRlbnQ6IFF1ZXJ5TGlzdDxVeENhcmRIZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKCdib2R5Q29udGFpbmVyJywgeyBzdGF0aWM6IGZhbHNlIH0pIGJvZHlDb250YWluZXJFbGVtZW50OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIGdldCBhcmVBY3Rpb25zRGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmFjdGlvbnNFbmFibGVkID09PSBmYWxzZTtcbiAgICB9XG5cbiAgICBnZXQgaXNBY3Rpb25zTGlua3NFbXB0eSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmFjdGlvbnNMaW5rcyB8fCB0aGlzLmFjdGlvbnNMaW5rcy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgZ2V0IHNob3VsZFJlbW92ZUxvY2FsTWVudSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hvdWxkS2VlcExvY2FsTWVudUxheW91dCA9PT0gZmFsc2UgJiYgdGhpcy5pc0FjdGlvbnNMaW5rc0VtcHR5ID09PSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAgICAgaWYgKGNoYW5nZXMuaXNTZWxlY3RlZCB8fCBjaGFuZ2VzLmlzTXV0ZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5hY3Rpb25zTGlua3MpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTG9jYWxNZW51Q2xhc3NlcygpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoYW5nZXMubG9jYWxNZW51TGF5b3V0VW5DaGFuZ2VkV2hlbkhpZGRlbikge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVMb2NhbE1lbnVDbGFzc2VzKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY2hhbmdlcy5zdGF0dXNJbmRpY2F0b3JUeXBlQ2xhc3MpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSW5kaWNhdG9yU3RhdGVDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5sb2NhbE1lbnVMYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbE1lbnVMYWJlbCA9ICdBY3Rpb25zJzsgICAgLy8gMkRPIC0gR2V0IGZyb20gdHJhbnNsYXRpb25zXG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaXNTZWxlY3RhYmxlICYmICF0aGlzLmlkKSB7XG4gICAgICAgICAgICB0aGlzLmdlbmVyYXRlZElkID0gJ2NoZWNrYm94LScgKyAoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMDAwMCkgKyAxKS50b1N0cmluZygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZWRJZCA9IHRoaXMuaWQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBJbmRpY2F0b3Igc3RhdHVzIGljb24gY2xhc3NcbiAgICAgICAgdGhpcy51cGRhdGVJbmRpY2F0b3JTdGF0ZUNsYXNzZXMoKTtcblxuICAgICAgICAvLyBIZWFkZXIgc3RhdHVzIHN0YXRlIGNsYXNzXG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBpZiAodGhpcy5ib2R5Q29udGFpbmVyRWxlbWVudCAmJlxuICAgICAgICAgICAgdGhpcy5ib2R5Q29udGFpbmVyRWxlbWVudC5uYXRpdmVFbGVtZW50LmlubmVySFRNTC5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgIHRoaXMuYm9keUNvbnRhaW5lckVsZW1lbnQubmF0aXZlRWxlbWVudC5pbm5lclRleHQubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB0aGlzLmJvZHlDb250YWluZXJFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgndXgtY2FyZF9fYm9keS0tbm8tY29udGVudCcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TZWxlY3QoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIHRoaXMuaXNTZWxlY3RlZCA9ICF0aGlzLmlzU2VsZWN0ZWQ7XG4gICAgICAgIHRoaXMudXBkYXRlU3RhdGVDbGFzc2VzKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWQuZW1pdCgpO1xuICAgIH1cblxuICAgIG9uVG9nZ2xlRmF2b3VyaXRlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuYXJlQWN0aW9uc0Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmZhdm91cml0ZWQuZW1pdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Ub2dnbGVVcmdlbnQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5hcmVBY3Rpb25zRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMudXJnZW50LmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTGlua1NlbGVjdGVkKGV2ZW50OiBVeExpbmspIHtcbiAgICAgICAgaWYgKCF0aGlzLmFyZUFjdGlvbnNEaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5saW5rU2VsZWN0ZWQuZW1pdChldmVudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvZ2dsZUNvbGxhcHNlKGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLmlzQ29sbGFwc2VkID0gIXRoaXMuaXNDb2xsYXBzZWQ7XG4gICAgICAgIHRoaXMub25Db2xsYXBzZS5lbWl0KHRoaXMuaXNDb2xsYXBzZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU3RhdGVDbGFzc2VzKCkge1xuICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyA9ICcnO1xuICAgICAgICBpZiAodGhpcy5pc011dGVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyArPSAndXgtY2FyZC0tbXV0ZWQgJztcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyArPSAndXgtY2FyZC0tc2VsZWN0ZWQgJztcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tVGl0bGUgJiYgIXRoaXMuY3VzdG9tU3ViVGl0bGUgJiYgIXRoaXMuY3VzdG9tSGVhZGVyTGVmdENvbnRlbnQgJiYgIXRoaXMuY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlQ2xhc3NlcyArPSAndXgtY2FyZC0tbm8taGVhZGVyICc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZUxvY2FsTWVudUNsYXNzZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmlzQWN0aW9uc0xpbmtzRW1wdHkpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxNZW51Q2xhc3NlcyA9ICdldWktdS12aXNpYmlsaXR5LWhpZGRlbic7IC8vIFRPRE8gdjE1IHJlbW92ZSB1c2FnZSBvZiB1dGlsaXR5IGluIGNtcCAtIHByZWZlciBtaXhpbiB0aHJvdWdoIHN0eWxlXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsTWVudUNsYXNzZXMgPSAnZXVpLXUtdmlzaWJpbGl0eS12aXNpYmxlJzsgLy8gVE9ETyB2MTUgcmVtb3ZlIHVzYWdlIG9mIHV0aWxpdHkgaW4gY21wIC0gcHJlZmVyIG1peGluIHRocm91Z2ggc3R5bGVcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlSW5kaWNhdG9yU3RhdGVDbGFzc2VzKCkge1xuICAgICAgICB0aGlzLnN0YXR1c0luZGljYXRvckljb25DbGFzcyA9ICcnO1xuICAgICAgICBpZiAodGhpcy5zdGF0dXNJbmRpY2F0b3JUeXBlQ2xhc3MgPT09ICd3YXJuaW5nJykge1xuICAgICAgICAgICAgdGhpcy5zdGF0dXNJbmRpY2F0b3JJY29uQ2xhc3MgPSAnZXhjbGFtYXRpb24nO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdHVzSW5kaWNhdG9yVHlwZUNsYXNzID09PSAnZGFuZ2VyJykge1xuICAgICAgICAgICAgdGhpcy5zdGF0dXNJbmRpY2F0b3JJY29uQ2xhc3MgPSAndGltZXMnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdHVzSW5kaWNhdG9yVHlwZUNsYXNzID09PSAnaW5mbycpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzSW5kaWNhdG9ySWNvbkNsYXNzID0gJ2luZm8nO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc3RhdHVzSW5kaWNhdG9yVHlwZUNsYXNzID09PSAnc3VjY2VzcycpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdHVzSW5kaWNhdG9ySWNvbkNsYXNzID0gJ2NoZWNrJztcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLyogZXNsaW50LWRpc2FibGUgKi9cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAndXhDYXJkVGl0bGUnfSlcbmV4cG9ydCBjbGFzcyBVeENhcmRUaXRsZVRhZ0RpcmVjdGl2ZSB7XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAndXhDYXJkU3ViVGl0bGUnfSlcbmV4cG9ydCBjbGFzcyBVeENhcmRTdWJUaXRsZVRhZ0RpcmVjdGl2ZSB7XG59XG5cbkBEaXJlY3RpdmUoe3NlbGVjdG9yOiAndXhDYXJkSGVhZGVyUmlnaHRDb250ZW50J30pXG5leHBvcnQgY2xhc3MgVXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlIHtcbn1cblxuQERpcmVjdGl2ZSh7c2VsZWN0b3I6ICd1eENhcmRIZWFkZXJMZWZ0Q29udGVudCd9KVxuZXhwb3J0IGNsYXNzIFV4Q2FyZEhlYWRlckxlZnRDb250ZW50RGlyZWN0aXZlIHtcbn1cbi8qIGVzbGludC1lbmFibGUgKi9cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVXhJY29uQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBVeEJhZGdlQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBVeERpc2FibGVDb250ZW50Q29tcG9uZW50TW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1xuICAgICAgICBVeENhcmRDb21wb25lbnQsXG4gICAgICAgIFV4Q2FyZFRpdGxlVGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRTdWJUaXRsZVRhZ0RpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRIZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkR3JvdXBEaXJlY3RpdmVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBVeENhcmRDb21wb25lbnQsXG4gICAgICAgIFV4Q2FyZFRpdGxlVGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRTdWJUaXRsZVRhZ0RpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkSGVhZGVyUmlnaHRDb250ZW50VGFnRGlyZWN0aXZlLFxuICAgICAgICBVeENhcmRIZWFkZXJMZWZ0Q29udGVudERpcmVjdGl2ZSxcbiAgICAgICAgVXhDYXJkR3JvdXBEaXJlY3RpdmVcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBVeENhcmRDb21wb25lbnRNb2R1bGUge1xuXG59XG4iLCI8ZGl2IGNsYXNzPVwidXgtY2FyZCB7e3N0YXRlQ2xhc3Nlc319IHV4LWNhcmQtLXt7c3RhdHVzVHlwZUNsYXNzfX0ge3tzdHlsZUNsYXNzfX1cIiB0YWJpbmRleD1cIjBcIiBhdHRyLmRhdGEtZTJlPVwie3sgZTJlQXR0ciB9fVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXJcIj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJoYXNTdGF0dXNJbmRpY2F0b3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItc3RhdHVzLWluZGljYXRvciBldWktdS1iZy1jb2xvci17e3N0YXR1c0luZGljYXRvclR5cGVDbGFzc319LWRhcmtcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXgtY2FyZF9faGVhZGVyLXN0YXR1cy1pbmRpY2F0b3ItaWNvbiBldWktaWNvbiBldWktaWNvbi17e3N0YXR1c0luZGljYXRvckljb25DbGFzc319XCI+PC9zcGFuPlxuICAgICAgICA8L3NwYW4+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpc1NlbGVjdGFibGUgfHwgaXNGYXZvdXJpdGFibGUgfHwgaXNVcmdlbnRhYmxlIHx8IGN1c3RvbUhlYWRlckxlZnRDb250ZW50XCIgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItbGVmdC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiaXNTZWxlY3RhYmxlXCIgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItbGVmdC1jb250ZW50LXNlbGVjdFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cImlzU2VsZWN0ZWRcIiBpZD1cInt7IGdlbmVyYXRlZElkIH19XCIgbmFtZT1cImNoZWNrYm94XCIgdHlwZT1cImNoZWNrYm94XCIgY2xhc3M9XCJ1eC1pbnB1dF9fY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uU2VsZWN0KCRldmVudClcIiBjaGVja2VkPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIiFpc1NlbGVjdGVkXCIgaWQ9XCJ7eyBnZW5lcmF0ZWRJZCB9fVwiIG5hbWU9XCJjaGVja2JveFwiIHR5cGU9XCJjaGVja2JveFwiIGNsYXNzPVwidXgtaW5wdXRfX2NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInt7IGdlbmVyYXRlZElkIH19XCIgY2xhc3M9XCJwLTBcIj48L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8dXgtYS1pY29uICpuZ0lmPVwiaXNGYXZvdXJpdGFibGVcIiBbaXNSb3VuZGVkXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnZXVpLXUtY29sb3ItYWNjZW50LWRhcmsnOiBpc0Zhdm91cml0ZSwgJ2V1aS11LWNvbG9yLWdyZXknOiAhaXNGYXZvdXJpdGUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLXN0YXJcIiAoY2xpY2spPVwib25Ub2dnbGVGYXZvdXJpdGUoJGV2ZW50KVwiPjwvdXgtYS1pY29uPlxuICAgICAgICAgICAgPHV4LWEtaWNvbiAqbmdJZj1cImlzVXJnZW50YWJsZVwiIFtpc1JvdW5kZWRdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdldWktdS1jb2xvci1hY2NlbnQtZGFyayc6IGlzVXJnZW50LCAnZXVpLXUtY29sb3ItZ3JleSc6ICFpc1VyZ2VudCB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgaWNvbkNsYXNzPVwiZXVpLWljb24gZXVpLWljb24tZmxhZ1wiIChjbGljayk9XCJvblRvZ2dsZVVyZ2VudCgkZXZlbnQpXCI+PC91eC1hLWljb24+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ1eENhcmRIZWFkZXJMZWZ0Q29udGVudFwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci10aXRsZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci10aXRsZS1tYWluXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwidXhDYXJkVGl0bGVcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJjdXN0b21UaXRsZSAmJiBjdXN0b21TdWJUaXRsZVwiIGNsYXNzPVwidXgtY2FyZF9faGVhZGVyLXRpdGxlLXN1YlwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInV4Q2FyZFN1YlRpdGxlXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJzdGF0dXMgfHwgKGFjdGlvbnNMaW5rcyAmJiBhY3Rpb25zTGlua3MubGVuZ3RoID4gMCkgfHwgY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50XCJcbiAgICAgICAgICAgICBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci1yaWdodC1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY3VzdG9tSGVhZGVyUmlnaHRDb250ZW50XCIgY2xhc3M9XCJ1eC1jYXJkX19oZWFkZXItcmlnaHQtY29udGVudF9fY3VzdG9tLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJ1eENhcmRIZWFkZXJSaWdodENvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJzdGF0dXNcIiBjbGFzcz1cInV4LWNhcmRfX2hlYWRlci1yaWdodC1jb250ZW50X19zdGF0dXNcIj5cbiAgICAgICAgICAgICAgICA8dXgtYmFkZ2UgW2lzUGlsbF09XCJ0cnVlXCIgW2lzU21hbGxdPVwidHJ1ZVwiIFt0eXBlQ2xhc3NdPVwic3RhdHVzVHlwZUNsYXNzXCI+e3sgc3RhdHVzIH19PC91eC1iYWRnZT5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzTGFiZWxcIiBjbGFzcz1cImV1aS11LWZvbnQtc2l6ZS1zIG10LTFcIj57eyBzdGF0dXNMYWJlbCB9fTwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiIXNob3VsZFJlbW92ZUxvY2FsTWVudVwiIGNsYXNzPVwidXgtY2FyZF9faGVhZGVyLXJpZ2h0LWNvbnRlbnRfX2xvY2FsLW1lbnVcIj5cbiAgICAgICAgICAgICAgICA8dXgtZGlzYWJsZS1jb250ZW50IFtpc0Rpc2FibGVkXT1cImFyZUFjdGlvbnNEaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8dXgtZHJvcGRvd24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNPdXRsaW5lXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzU21hbGxdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlQ2xhc3M9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZUNsYXNzXT1cImxvY2FsTWVudUNsYXNzZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImxvY2FsTWVudUxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGljb25DbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLW1vcmUtdmVydGljYWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtzXT1cImFjdGlvbnNMaW5rc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAobGlua1NlbGVjdGVkKT1cIm9uTGlua1NlbGVjdGVkKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgICAgPC91eC1kcm9wZG93bi1idXR0b24+XG4gICAgICAgICAgICAgICAgPC91eC1kaXNhYmxlLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzQ2FyZEJvZHlIaWRkZW4gJiYgKCFpc0NvbGxhcHNlZCB8fCAhaXNDb2xsYXBzaWJsZSlcIj5cbiAgICAgICAgPGRpdiAjYm9keUNvbnRhaW5lciBjbGFzcz1cInV4LWNhcmRfX2JvZHlcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiaXNDb2xsYXBzaWJsZVwiIGNsYXNzPVwidXgtY2FyZF9fZXhwYW5kLXRyaWdnZXJcIiAoY2xpY2spPVwib25Ub2dnbGVDb2xsYXBzZSgkZXZlbnQpXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiaXNDb2xsYXBzZWRcIiBjbGFzcz1cInV4LWNhcmRfX2V4cGFuZC10cmlnZ2VyLXRvZ2dsZVwiPnt7ZXhwYW5kTGFiZWx9fSA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJldWktaWNvbiBldWktaWNvbi1hbmdsZS1kb3duIHV4LWNhcmRfX2V4cGFuZC1pY29uXCI+PC9zcGFuPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNDb2xsYXBzZWRcIiBjbGFzcz1cInV4LWNhcmRfX2V4cGFuZC10cmlnZ2VyLXRvZ2dsZVwiPnt7Y29sbGFwc2VMYWJlbH19IDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImV1aS1pY29uIGV1aS1pY29uLWFuZ2xlLXVwIHV4LWNhcmRfX2V4cGFuZC1pY29uXCI+PC9zcGFuPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -98,7 +98,7 @@ export class UxDropdownButtonComponent {
98
98
  if (this.isShowDropdownToggle && !this.iconClass) {
99
99
  this.buttonStyleClass += ' ux-dropdown-toggle';
100
100
  }
101
- this.buttonStyleClass += ' eui-u-text-' + this.buttonLabelAlignment;
101
+ this.buttonStyleClass += ' eui-u-text-' + this.buttonLabelAlignment; // TODO v15 remove usage of utility in cmp - prefer mixin through style
102
102
  }
103
103
  ngOnDestroy() {
104
104
  this.destroy$.next(true);
@@ -309,4 +309,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
309
309
  declarations: [UxDropdownButtonComponent]
310
310
  }]
311
311
  }] });
312
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xlZ2FjeS91eC1kcm9wZG93bi1idXR0b24vdXgtZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xlZ2FjeS91eC1kcm9wZG93bi1idXR0b24vdXgtZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFFBQVEsRUFHUixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBMkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1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LEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDcEMsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUsIE1hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE9ic2VydmVyc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBVeExpbmsgfSBmcm9tICdAZXVpL2NvcmUnO1xuXG5pbXBvcnQgeyBVeERyb3Bkb3duQnV0dG9uSXRlbUNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4vdXgtZHJvcGRvd24tYnV0dG9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFV4QnV0dG9uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2xlZ2FjeS91eC1idXR0b24nO1xuaW1wb3J0IHsgVXhUcmVlQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2xlZ2FjeS91eC10cmVlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL1N1YmplY3QnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgVVhfRFJPUERPV05fQlVUVE9OX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVXhEcm9wZG93bkJ1dHRvbkNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG59O1xuXG5jb25zdCBub29wID0gKCk6IHZvaWQgPT4ge1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1eC1kcm9wZG93bi1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91eC1kcm9wZG93bi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1VYX0RST1BET1dOX0JVVFRPTl9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVXhEcm9wZG93bkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvbkNsYXNzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlua3M6IFV4TGlua1tdO1xuICAgIEBJbnB1dCgpIGFjdGl2ZUxpbms6IFV4TGluaztcbiAgICBASW5wdXQoKSB0eXBlQ2xhc3M6IHN0cmluZyA9ICdzZWNvbmRhcnknO1xuICAgIEBJbnB1dCgpIGRyb3Bkb3duTWluSGVpZ2h0OiBzdHJpbmcgPSAnYXV0byc7XG4gICAgQElucHV0KCkgZHJvcGRvd25NYXhIZWlnaHQ6IHN0cmluZyA9ICdhdXRvJztcbiAgICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gJzEwcmVtJztcbiAgICBASW5wdXQoKSBidXR0b25MYWJlbEFsaWdubWVudDogKCdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JykgPSAnY2VudGVyJztcbiAgICBASW5wdXQoKSBlMmVBdHRyOiBzdHJpbmcgPSAndXgtZHJvcGRvd24tYnV0dG9uJztcbiAgICBASW5wdXQoKSBtZW51OiBNYXRNZW51O1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG5cbiAgICB0ZW1wOiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIGxpbmtTZWxlY3RlZDogRXZlbnRFbWl0dGVyPFV4TGluaz4gPSBuZXcgRXZlbnRFbWl0dGVyPFV4TGluaz4oKTtcbiAgICBAQ29udGVudENoaWxkKFV4VHJlZUNvbXBvbmVudCkgdXhUcmVlOiBVeFRyZWVDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbWFpbk1lbnUnKSBtYXRNZW51OiBNYXRNZW51O1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVUcmlnZ2VyJykgbWF0TWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuICAgIEBWaWV3Q2hpbGQoJ2J1dHRvbnJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBidXR0b25yZWY6IEVsZW1lbnRSZWY7XG5cbiAgICBpc0ljb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpc0ZsYXRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBidXR0b25TdHlsZUNsYXNzOiBzdHJpbmcgPSAndXgtZHJvcGRvd24tYnV0dG9uJztcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzVXBkYXRlTGFiZWxGcm9tU2VsZWN0ZWRJdGVtKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW07IH1cbiAgICBzZXQgaXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW0odmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc1VwZGF0ZUxhYmVsRnJvbVNlbGVjdGVkSXRlbSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1VwZGF0ZUxhYmVsRnJvbVNlbGVjdGVkSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Rpc2FibGVkOyB9XG4gICAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc0Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTbWFsbDsgfVxuICAgIHNldCBpc1NtYWxsKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNTbWFsbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1NtYWxsOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzTGFyZ2U7IH1cbiAgICBzZXQgaXNMYXJnZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzTGFyZ2UgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNMYXJnZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU3BsaXRCdXR0b25Ub2dnbGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc1NwbGl0QnV0dG9uVG9nZ2xlOyB9XG4gICAgc2V0IGlzU3BsaXRCdXR0b25Ub2dnbGUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc1NwbGl0QnV0dG9uVG9nZ2xlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzU3BsaXRCdXR0b25Ub2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0Ryb3BEb3duUmlnaHRBbGlnbmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNEcm9wRG93blJpZ2h0QWxpZ25lZDsgfVxuICAgIHNldCBpc0Ryb3BEb3duUmlnaHRBbGlnbmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNEcm9wRG93blJpZ2h0QWxpZ25lZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0Ryb3BEb3duUmlnaHRBbGlnbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNMaW5rVG9nZ2xlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNMaW5rVG9nZ2xlOyB9XG4gICAgc2V0IGlzTGlua1RvZ2dsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzTGlua1RvZ2dsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0xpbmtUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc091dGxpbmUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc091dGxpbmU7IH1cbiAgICBzZXQgaXNPdXRsaW5lKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNPdXRsaW5lID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzT3V0bGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd0Ryb3Bkb3duVG9nZ2xlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTaG93RHJvcGRvd25Ub2dnbGU7IH1cbiAgICBzZXQgaXNTaG93RHJvcGRvd25Ub2dnbGUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc1Nob3dEcm9wZG93blRvZ2dsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1Nob3dEcm9wZG93blRvZ2dsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzSXRlbXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9oYXNJdGVtczsgfVxuICAgIHNldCBoYXNJdGVtcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2hhc0l0ZW1zID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2hhc0l0ZW1zOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTZWNvbmRhcnkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc1NlY29uZGFyeTsgfVxuICAgIHNldCBpc1NlY29uZGFyeSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzU2Vjb25kYXJ5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzU2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNCbG9jaygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzQmxvY2s7IH1cbiAgICBzZXQgaXNCbG9jayh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzQmxvY2sgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNCbG9jazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIHByaXZhdGUgc2VsZWN0ZWRMaW5rOiBVeExpbmsgPSBudWxsO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcCA9IHRoaXMubGFiZWw7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubGFiZWwgJiYgIXRoaXMuaWNvbkNsYXNzICYmICF0aGlzLmlzU3BsaXRCdXR0b25Ub2dnbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbkNsYXNzID0gJ2V1aS1pY29uIGV1aS1pY29uLWJhcnMnO1xuICAgICAgICAgICAgdGhpcy5pc0ljb25CdXR0b24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ljb25CdXR0b24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25DbGFzcyAmJiAhdGhpcy5sYWJlbCAmJiAhdGhpcy5pc1NwbGl0QnV0dG9uVG9nZ2xlKSB7XG4gICAgICAgICAgICB0aGlzLmlzRmxhdEJ1dHRvbiA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdHlsZUNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvblN0eWxlQ2xhc3MgKz0gJyAnICsgdGhpcy5zdHlsZUNsYXNzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTaG93RHJvcGRvd25Ub2dnbGUgJiYgIXRoaXMuaWNvbkNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvblN0eWxlQ2xhc3MgKz0gJyB1eC1kcm9wZG93bi10b2dnbGUnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5idXR0b25TdHlsZUNsYXNzICs9ICcgZXVpLXUtdGV4dC0nICsgdGhpcy5idXR0b25MYWJlbEFsaWdubWVudDtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2VsZWN0RHJvcGRvd25JdGVtKGxpbms6IFV4TGluayk6IHZvaWQge1xuICAgICAgICBpZiAoIWxpbmsuZGlzYWJsZWQpIHtcblxuICAgICAgICAgICAgaWYgKGxpbmsgJiYgbGluay5jb21tYW5kKSB7XG4gICAgICAgICAgICAgICAgbGluay5jb21tYW5kKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsaW5rLnVybEV4dGVybmFsKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4obGluay51cmxFeHRlcm5hbCwgbGluay51cmxFeHRlcm5hbFRhcmdldCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzVXBkYXRlTGFiZWxGcm9tU2VsZWN0ZWRJdGVtICYmIGxpbmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsID0gbGluay5sYWJlbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtzLmZvckVhY2goKGxuaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsbmsuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBsaW5rLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKGxpbmspO1xuICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGxpbmspO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5tYXRNZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgICAgICAvLyBGaW5kIGZpcnN0IGFuZCBsYXN0IGZvY3VzYWJsZSBlbGVtZW50XG4gICAgICAgICAgICBsZXQgZmlyc3RGb2N1c2FibGVFbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnV4VHJlZS50cmVlTm9kZXMuZmlyc3Qubm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaS51eC10cmVlX19ub2RlIGRpdiB1eC1idXR0b24gYnV0dG9uJylbMF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaS51eC10cmVlX19ub2RlIGRpdiBzcGFuIGlucHV0JylbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBsYXN0Rm9jdXNhYmxlRWw7XG4gICAgICAgICAgICBpZiAodGhpcy51eFRyZWUuaXNNdWx0aXNlbGVjdCkge1xuICAgICAgICAgICAgICAgIGxhc3RGb2N1c2FibGVFbCA9IDxIVE1MRWxlbWVudD5BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnV4LXRyZWVfX25vZGUgZGl2IHNwYW4gaW5wdXQnKSkucmV2ZXJzZSgpWzBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwgPSA8SFRNTEVsZW1lbnQ+QXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaS51eC10cmVlX19ub2RlIGRpdiB1eC1idXR0b24gYnV0dG9uJykpLnJldmVyc2UoKVswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRyYXAgRm9jdXNcbiAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgKGZpcnN0Rm9jdXNhYmxlRWwgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIG1lbnVUcmlnZ2VyPzogTWF0TWVudVRyaWdnZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCBldmVudC5rZXkgPT09ICdFbnRlcicgJiYgdGhpcy51eFRyZWUpIHtcbiAgICAgICAgICAgIG1lbnVUcmlnZ2VyPy5tZW51T3BlbmVkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGb2N1cyBmaXJzdCBlbGVtZW50XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudXhUcmVlLnRyZWVOb2Rlcy5maXJzdC5ub2RlLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0QnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnV4LXRyZWVfX25vZGUgZGl2IHV4LWJ1dHRvbiBidXR0b24nKVswXTtcbiAgICAgICAgICAgICAgICAgICAgKGZpcnN0QnV0dG9uRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdElucHV0RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnV4LXRyZWVfX25vZGUgZGl2IHNwYW4gaW5wdXQnKVswXTtcbiAgICAgICAgICAgICAgICAgICAgKGZpcnN0SW5wdXRFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UcmlnZ2VyQ2xpY2sobWVudVRyaWdnZXI/OiBNYXRNZW51VHJpZ2dlcik6IHZvaWQge1xuICAgICAgICBtZW51VHJpZ2dlcj8ubWVudU9wZW5lZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXhUcmVlPy52aXJ0dWFsU2Nyb2xsaW5nPy5zY3JvbGxUb0luZGV4KDAuMSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTGluayA9IHZhbHVlIHx8IG51bGw7XG4gICAgICAgIHRoaXMuaXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW0gPSB0cnVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IHZhbHVlLmxhYmVsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IHRoaXMudGVtcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIG9uQ2xpY2sobGluaz86IFV4TGluayk6IHZvaWQge1xuICAgICAgICBpZiAobGluayAmJiAhbGluay5kaXNhYmxlZCAmJiBsaW5rLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIGxpbmsuY29tbWFuZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IFV4TGluayk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVXhEcm9wZG93bkJ1dHRvbkl0ZW1Db21wb25lbnRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIFV4QnV0dG9uQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE9ic2VydmVyc01vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50TW9kdWxlIHtcbn1cbiIsIjx1eC1idXR0b24gKm5nSWY9XCIhaXNMaW5rVG9nZ2xlXCJcbiAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnU/IG1lbnU6IG1haW5NZW51XCJcbiAgICAgICAgICAgI2J1dHRvbnJlZlxuICAgICAgICAgICAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgICAgICAgIChrZXlkb3duKT1cIm9uQnV0dG9uS2V5RG93bigkZXZlbnQsIG1lbnVUcmlnZ2VyKVwiXG4gICAgICAgICAgIChjbGljayk9XCJvblRyaWdnZXJDbGljayhtZW51VHJpZ2dlcilcIlxuICAgICAgICAgICBbaXNTZWNvbmRhcnldPVwiaXNTZWNvbmRhcnlcIlxuICAgICAgICAgICBbaXNPdXRsaW5lXT1cImlzT3V0bGluZVwiXG4gICAgICAgICAgIFtpc1NtYWxsXT1cImlzU21hbGxcIlxuICAgICAgICAgICBbaXNMYXJnZV09XCJpc0xhcmdlXCJcbiAgICAgICAgICAgdHlwZUNsYXNzPVwie3t0eXBlQ2xhc3N9fVwiXG4gICAgICAgICAgIFtzdHlsZUNsYXNzXT1cImJ1dHRvblN0eWxlQ2xhc3NcIlxuICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgW2lzRmxhdF09XCJpc0ZsYXRCdXR0b25cIlxuICAgICAgICAgICBbaXNCbG9ja109XCJpc0Jsb2NrXCJcbiAgICAgICAgICAgW2F0dHIuZGF0YS1lMmVdPVwiZTJlQXR0clwiPlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cImljb25DbGFzc1wiIGNsYXNzPVwidXgtYnV0dG9uX19pY29uIGV1aS1pY29uLWZ3IHt7aWNvbkNsYXNzfX1cIiBbY2xhc3MubXMtMl09XCJsYWJlbFwiPjwvc3Bhbj5cbjwvdXgtYnV0dG9uPlxuXG48YSAqbmdJZj1cImlzTGlua1RvZ2dsZVwiIFtjbGFzcy51eC1kcm9wZG93bi10b2dnbGVdPVwiaXNTaG93RHJvcGRvd25Ub2dnbGVcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWFpbk1lbnVcIj5cbiAgICA8c3BhbiBjbGFzcz1cInV4LWJ1dHRvbl9faWNvbiBldWktaWNvbi1mdyB7e2ljb25DbGFzc319XCI+PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbjwvYT5cblxuPG1hdC1tZW51ICNtYWluTWVudT1cIm1hdE1lbnVcIiBbeFBvc2l0aW9uXT1cImlzRHJvcERvd25SaWdodEFsaWduZWQgPyAnYmVmb3JlJyA6ICdhZnRlcidcIj5cbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwibGluay5jaGlsZHJlbiAmJiBsaW5rLmNoaWxkcmVuLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudS5jaGlsZE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXUtZGlzYWJsZWRdPVwibGluay5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImxpbmsuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKGxpbmspXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaW5rLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1eC1kcm9wZG93bi1idXR0b24taXRlbV9faWNvbiBldWktaWNvbi1mdyB7eyBsaW5rLmljb25DbGFzcyB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBsaW5rLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8dXgtZHJvcGRvd24tYnV0dG9uLWl0ZW0gI21lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGFzQ2hpbGRyZW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtzXT1cImxpbmsuY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlMmVBdHRyXT1cImxpbmsuZTJlQXR0clwiPlxuICAgICAgICAgICAgPC91eC1kcm9wZG93bi1idXR0b24taXRlbT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFsaW5rLmNoaWxkcmVuIHx8IGxpbmsuY2hpbGRyZW4ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICA8dXgtZHJvcGRvd24tYnV0dG9uLWl0ZW0gW2xpbmtdPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtTZWxlY3RlZCk9XCJzZWxlY3REcm9wZG93bkl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2UyZUF0dHJdPVwibGluay5lMmVBdHRyXCI+XG4gICAgICAgICAgICA8L3V4LWRyb3Bkb3duLWJ1dHRvbi1pdGVtPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlua3MgfHwgbGlua3MubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1eC1kcm9wZG93bi1idXR0b25fX2NvbnRlbnRcIlxuICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImRyb3Bkb3duTWF4SGVpZ2h0XCJcbiAgICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodF09XCJkcm9wZG93bk1pbkhlaWdodFwiXG4gICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LW1lbnU+XG4iXX0=
312
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXgtZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xlZ2FjeS91eC1kcm9wZG93bi1idXR0b24vdXgtZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL2xlZ2FjeS91eC1kcm9wZG93bi1idXR0b24vdXgtZHJvcGRvd24tYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUVILFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFFBQVEsRUFHUixNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNwQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBMkIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDakUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxxQkFBcUIsRUFBZ0IsTUFBTSx1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QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDcEMsWUFBWSxFQUFFLENBQUMseUJBQXlCLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSW5wdXQsXG4gICAgTmdNb2R1bGUsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uRGVzdHJveSxcbiAgICBPdXRwdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUsIE1hdE1lbnUsIE1hdE1lbnVUcmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE9ic2VydmVyc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBVeExpbmsgfSBmcm9tICdAZXVpL2NvcmUnO1xuXG5pbXBvcnQgeyBVeERyb3Bkb3duQnV0dG9uSXRlbUNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4vdXgtZHJvcGRvd24tYnV0dG9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFV4QnV0dG9uQ29tcG9uZW50TW9kdWxlIH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2xlZ2FjeS91eC1idXR0b24nO1xuaW1wb3J0IHsgVXhUcmVlQ29tcG9uZW50IH0gZnJvbSAnQGV1aS9jb21wb25lbnRzL2xlZ2FjeS91eC10cmVlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL1N1YmplY3QnO1xuaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5LCBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY29uc3QgVVhfRFJPUERPV05fQlVUVE9OX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gVXhEcm9wZG93bkJ1dHRvbkNvbXBvbmVudCksXG4gICAgbXVsdGk6IHRydWUsXG59O1xuXG5jb25zdCBub29wID0gKCk6IHZvaWQgPT4ge1xufTtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1eC1kcm9wZG93bi1idXR0b24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi91eC1kcm9wZG93bi1idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHByb3ZpZGVyczogW1VYX0RST1BET1dOX0JVVFRPTl9WQUxVRV9BQ0NFU1NPUl0sXG4gICAgc3R5bGVVcmxzOiBbJy4vc3R5bGVzL19pbmRleC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgVXhEcm9wZG93bkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgc3R5bGVDbGFzczogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG4gICAgQElucHV0KCkgaWNvbkNsYXNzOiBzdHJpbmc7XG4gICAgQElucHV0KCkgbGlua3M6IFV4TGlua1tdO1xuICAgIEBJbnB1dCgpIGFjdGl2ZUxpbms6IFV4TGluaztcbiAgICBASW5wdXQoKSB0eXBlQ2xhc3M6IHN0cmluZyA9ICdzZWNvbmRhcnknO1xuICAgIEBJbnB1dCgpIGRyb3Bkb3duTWluSGVpZ2h0OiBzdHJpbmcgPSAnYXV0byc7XG4gICAgQElucHV0KCkgZHJvcGRvd25NYXhIZWlnaHQ6IHN0cmluZyA9ICdhdXRvJztcbiAgICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gJzEwcmVtJztcbiAgICBASW5wdXQoKSBidXR0b25MYWJlbEFsaWdubWVudDogKCdsZWZ0JyB8ICdjZW50ZXInIHwgJ3JpZ2h0JykgPSAnY2VudGVyJztcbiAgICBASW5wdXQoKSBlMmVBdHRyOiBzdHJpbmcgPSAndXgtZHJvcGRvd24tYnV0dG9uJztcbiAgICBASW5wdXQoKSBtZW51OiBNYXRNZW51O1xuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG5cbiAgICB0ZW1wOiBzdHJpbmc7XG4gICAgQE91dHB1dCgpIGxpbmtTZWxlY3RlZDogRXZlbnRFbWl0dGVyPFV4TGluaz4gPSBuZXcgRXZlbnRFbWl0dGVyPFV4TGluaz4oKTtcbiAgICBAQ29udGVudENoaWxkKFV4VHJlZUNvbXBvbmVudCkgdXhUcmVlOiBVeFRyZWVDb21wb25lbnQ7XG4gICAgQFZpZXdDaGlsZCgnbWFpbk1lbnUnKSBtYXRNZW51OiBNYXRNZW51O1xuICAgIEBWaWV3Q2hpbGQoJ21lbnVUcmlnZ2VyJykgbWF0TWVudVRyaWdnZXI6IE1hdE1lbnVUcmlnZ2VyO1xuICAgIEBWaWV3Q2hpbGQoJ2J1dHRvbnJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBidXR0b25yZWY6IEVsZW1lbnRSZWY7XG5cbiAgICBpc0ljb25CdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBpc0ZsYXRCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBidXR0b25TdHlsZUNsYXNzOiBzdHJpbmcgPSAndXgtZHJvcGRvd24tYnV0dG9uJztcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzVXBkYXRlTGFiZWxGcm9tU2VsZWN0ZWRJdGVtKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW07IH1cbiAgICBzZXQgaXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW0odmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc1VwZGF0ZUxhYmVsRnJvbVNlbGVjdGVkSXRlbSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1VwZGF0ZUxhYmVsRnJvbVNlbGVjdGVkSXRlbTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc0Rpc2FibGVkOyB9XG4gICAgc2V0IGlzRGlzYWJsZWQodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc0Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc1NtYWxsKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTbWFsbDsgfVxuICAgIHNldCBpc1NtYWxsKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNTbWFsbCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1NtYWxsOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNMYXJnZSgpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzTGFyZ2U7IH1cbiAgICBzZXQgaXNMYXJnZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzTGFyZ2UgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNMYXJnZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU3BsaXRCdXR0b25Ub2dnbGUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc1NwbGl0QnV0dG9uVG9nZ2xlOyB9XG4gICAgc2V0IGlzU3BsaXRCdXR0b25Ub2dnbGUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc1NwbGl0QnV0dG9uVG9nZ2xlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzU3BsaXRCdXR0b25Ub2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc0Ryb3BEb3duUmlnaHRBbGlnbmVkKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNEcm9wRG93blJpZ2h0QWxpZ25lZDsgfVxuICAgIHNldCBpc0Ryb3BEb3duUmlnaHRBbGlnbmVkKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNEcm9wRG93blJpZ2h0QWxpZ25lZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0Ryb3BEb3duUmlnaHRBbGlnbmVkOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNMaW5rVG9nZ2xlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNMaW5rVG9nZ2xlOyB9XG4gICAgc2V0IGlzTGlua1RvZ2dsZSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzTGlua1RvZ2dsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc0xpbmtUb2dnbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIGdldCBpc091dGxpbmUoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc091dGxpbmU7IH1cbiAgICBzZXQgaXNPdXRsaW5lKHZhbHVlOiBCb29sZWFuSW5wdXQpIHsgdGhpcy5faXNPdXRsaW5lID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzT3V0bGluZTogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGlzU2hvd0Ryb3Bkb3duVG9nZ2xlKCk6IGJvb2xlYW4geyByZXR1cm4gdGhpcy5faXNTaG93RHJvcGRvd25Ub2dnbGU7IH1cbiAgICBzZXQgaXNTaG93RHJvcGRvd25Ub2dnbGUodmFsdWU6IEJvb2xlYW5JbnB1dCkgeyB0aGlzLl9pc1Nob3dEcm9wZG93blRvZ2dsZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7IH1cbiAgICBwcml2YXRlIF9pc1Nob3dEcm9wZG93blRvZ2dsZTogYm9vbGVhbiA9IHRydWU7XG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzSXRlbXMoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9oYXNJdGVtczsgfVxuICAgIHNldCBoYXNJdGVtcyh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2hhc0l0ZW1zID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2hhc0l0ZW1zOiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNTZWNvbmRhcnkoKTogYm9vbGVhbiB7IHJldHVybiB0aGlzLl9pc1NlY29uZGFyeTsgfVxuICAgIHNldCBpc1NlY29uZGFyeSh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzU2Vjb25kYXJ5ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTsgfVxuICAgIHByaXZhdGUgX2lzU2Vjb25kYXJ5OiBib29sZWFuID0gZmFsc2U7XG4gICAgQElucHV0KClcbiAgICBnZXQgaXNCbG9jaygpOiBib29sZWFuIHsgcmV0dXJuIHRoaXMuX2lzQmxvY2s7IH1cbiAgICBzZXQgaXNCbG9jayh2YWx1ZTogQm9vbGVhbklucHV0KSB7IHRoaXMuX2lzQmxvY2sgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpOyB9XG4gICAgcHJpdmF0ZSBfaXNCbG9jazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZTogKF86IGFueSkgPT4gdm9pZCA9IG5vb3A7XG4gICAgcHJpdmF0ZSBvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQgPSBub29wO1xuICAgIHByaXZhdGUgc2VsZWN0ZWRMaW5rOiBVeExpbmsgPSBudWxsO1xuICAgIHByaXZhdGUgZGVzdHJveSQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudGVtcCA9IHRoaXMubGFiZWw7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubGFiZWwgJiYgIXRoaXMuaWNvbkNsYXNzICYmICF0aGlzLmlzU3BsaXRCdXR0b25Ub2dnbGUpIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbkNsYXNzID0gJ2V1aS1pY29uIGV1aS1pY29uLWJhcnMnO1xuICAgICAgICAgICAgdGhpcy5pc0ljb25CdXR0b24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5pc0ljb25CdXR0b24gPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmljb25DbGFzcyAmJiAhdGhpcy5sYWJlbCAmJiAhdGhpcy5pc1NwbGl0QnV0dG9uVG9nZ2xlKSB7XG4gICAgICAgICAgICB0aGlzLmlzRmxhdEJ1dHRvbiA9IHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zdHlsZUNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvblN0eWxlQ2xhc3MgKz0gJyAnICsgdGhpcy5zdHlsZUNsYXNzO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNTaG93RHJvcGRvd25Ub2dnbGUgJiYgIXRoaXMuaWNvbkNsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmJ1dHRvblN0eWxlQ2xhc3MgKz0gJyB1eC1kcm9wZG93bi10b2dnbGUnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5idXR0b25TdHlsZUNsYXNzICs9ICcgZXVpLXUtdGV4dC0nICsgdGhpcy5idXR0b25MYWJlbEFsaWdubWVudDsgLy8gVE9ETyB2MTUgcmVtb3ZlIHVzYWdlIG9mIHV0aWxpdHkgaW4gY21wIC0gcHJlZmVyIG1peGluIHRocm91Z2ggc3R5bGVcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgc2VsZWN0RHJvcGRvd25JdGVtKGxpbms6IFV4TGluayk6IHZvaWQge1xuICAgICAgICBpZiAoIWxpbmsuZGlzYWJsZWQpIHtcblxuICAgICAgICAgICAgaWYgKGxpbmsgJiYgbGluay5jb21tYW5kKSB7XG4gICAgICAgICAgICAgICAgbGluay5jb21tYW5kKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChsaW5rLnVybEV4dGVybmFsKSB7XG4gICAgICAgICAgICAgICAgd2luZG93Lm9wZW4obGluay51cmxFeHRlcm5hbCwgbGluay51cmxFeHRlcm5hbFRhcmdldCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzVXBkYXRlTGFiZWxGcm9tU2VsZWN0ZWRJdGVtICYmIGxpbmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxhYmVsID0gbGluay5sYWJlbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHRoaXMuaXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxpbmtzLmZvckVhY2goKGxuaykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBsbmsuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBsaW5rLmFjdGl2ZSA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm9uQ2hhbmdlKGxpbmspO1xuICAgICAgICB0aGlzLmxpbmtTZWxlY3RlZC5lbWl0KGxpbmspO1xuICAgIH1cblxuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xuICAgICAgICAgICAgdGhpcy5tYXRNZW51VHJpZ2dlci5jbG9zZU1lbnUoKTtcbiAgICAgICAgICAgIHRoaXMuYnV0dG9ucmVmLm5hdGl2ZUVsZW1lbnQuZmlyc3RFbGVtZW50Q2hpbGQuZm9jdXMoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgICAgICAvLyBGaW5kIGZpcnN0IGFuZCBsYXN0IGZvY3VzYWJsZSBlbGVtZW50XG4gICAgICAgICAgICBsZXQgZmlyc3RGb2N1c2FibGVFbDtcbiAgICAgICAgICAgIGlmICh0aGlzLnV4VHJlZS50cmVlTm9kZXMuZmlyc3Qubm9kZS5oYXNDaGlsZHJlbikge1xuICAgICAgICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaS51eC10cmVlX19ub2RlIGRpdiB1eC1idXR0b24gYnV0dG9uJylbMF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZpcnN0Rm9jdXNhYmxlRWwgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaS51eC10cmVlX19ub2RlIGRpdiBzcGFuIGlucHV0JylbMF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBsYXN0Rm9jdXNhYmxlRWw7XG4gICAgICAgICAgICBpZiAodGhpcy51eFRyZWUuaXNNdWx0aXNlbGVjdCkge1xuICAgICAgICAgICAgICAgIGxhc3RGb2N1c2FibGVFbCA9IDxIVE1MRWxlbWVudD5BcnJheS5mcm9tKGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnV4LXRyZWVfX25vZGUgZGl2IHNwYW4gaW5wdXQnKSkucmV2ZXJzZSgpWzBdO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwgPSA8SFRNTEVsZW1lbnQ+QXJyYXkuZnJvbShkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdsaS51eC10cmVlX19ub2RlIGRpdiB1eC1idXR0b24gYnV0dG9uJykpLnJldmVyc2UoKVswXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRyYXAgRm9jdXNcbiAgICAgICAgICAgIGlmIChldmVudC5zaGlmdEtleSAmJiBkb2N1bWVudC5hY3RpdmVFbGVtZW50ID09PSBmaXJzdEZvY3VzYWJsZUVsKSB7XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICBsYXN0Rm9jdXNhYmxlRWwuZm9jdXMoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIWV2ZW50LnNoaWZ0S2V5ICYmIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgPT09IGxhc3RGb2N1c2FibGVFbCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgKGZpcnN0Rm9jdXNhYmxlRWwgYXMgSFRNTEVsZW1lbnQpLmZvY3VzKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICBvbkJ1dHRvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQsIG1lbnVUcmlnZ2VyPzogTWF0TWVudVRyaWdnZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKCBldmVudC5rZXkgPT09ICdFbnRlcicgJiYgdGhpcy51eFRyZWUpIHtcbiAgICAgICAgICAgIG1lbnVUcmlnZ2VyPy5tZW51T3BlbmVkLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoICgpID0+IHtcbiAgICAgICAgICAgICAgICAvLyBGb2N1cyBmaXJzdCBlbGVtZW50XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudXhUcmVlLnRyZWVOb2Rlcy5maXJzdC5ub2RlLmhhc0NoaWxkcmVuKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpcnN0QnV0dG9uRWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnV4LXRyZWVfX25vZGUgZGl2IHV4LWJ1dHRvbiBidXR0b24nKVswXTtcbiAgICAgICAgICAgICAgICAgICAgKGZpcnN0QnV0dG9uRWxlbWVudCBhcyBIVE1MRWxlbWVudCkuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBmaXJzdElucHV0RWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ2xpLnV4LXRyZWVfX25vZGUgZGl2IHNwYW4gaW5wdXQnKVswXTtcbiAgICAgICAgICAgICAgICAgICAgKGZpcnN0SW5wdXRFbGVtZW50IGFzIEhUTUxFbGVtZW50KS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25UcmlnZ2VyQ2xpY2sobWVudVRyaWdnZXI/OiBNYXRNZW51VHJpZ2dlcik6IHZvaWQge1xuICAgICAgICBtZW51VHJpZ2dlcj8ubWVudU9wZW5lZC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMudXhUcmVlPy52aXJ0dWFsU2Nyb2xsaW5nPy5zY3JvbGxUb0luZGV4KDAuMSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTGluayA9IHZhbHVlIHx8IG51bGw7XG4gICAgICAgIHRoaXMuaXNVcGRhdGVMYWJlbEZyb21TZWxlY3RlZEl0ZW0gPSB0cnVlO1xuXG4gICAgICAgIGlmICh2YWx1ZSAmJiB2YWx1ZS5sYWJlbCkge1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IHZhbHVlLmxhYmVsO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sYWJlbCA9IHRoaXMudGVtcDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICAgIH1cblxuICAgIG9uQ2xpY2sobGluaz86IFV4TGluayk6IHZvaWQge1xuICAgICAgICBpZiAobGluayAmJiAhbGluay5kaXNhYmxlZCAmJiBsaW5rLmNvbW1hbmQpIHtcbiAgICAgICAgICAgIGxpbmsuY29tbWFuZCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdHJhY2tCeUZuKGluZGV4OiBudW1iZXIsIGl0ZW06IFV4TGluayk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cbn1cblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVXhEcm9wZG93bkJ1dHRvbkl0ZW1Db21wb25lbnRNb2R1bGUsXG4gICAgICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICAgICAgTWF0TWVudU1vZHVsZSxcbiAgICAgICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgICAgIFV4QnV0dG9uQ29tcG9uZW50TW9kdWxlLFxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgICAgIE9ic2VydmVyc01vZHVsZSxcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50XSxcbiAgICBkZWNsYXJhdGlvbnM6IFtVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBVeERyb3Bkb3duQnV0dG9uQ29tcG9uZW50TW9kdWxlIHtcbn1cbiIsIjx1eC1idXR0b24gKm5nSWY9XCIhaXNMaW5rVG9nZ2xlXCJcbiAgICAgICAgICAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnU/IG1lbnU6IG1haW5NZW51XCJcbiAgICAgICAgICAgI2J1dHRvbnJlZlxuICAgICAgICAgICAjbWVudVRyaWdnZXI9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgICAgICAgIChrZXlkb3duKT1cIm9uQnV0dG9uS2V5RG93bigkZXZlbnQsIG1lbnVUcmlnZ2VyKVwiXG4gICAgICAgICAgIChjbGljayk9XCJvblRyaWdnZXJDbGljayhtZW51VHJpZ2dlcilcIlxuICAgICAgICAgICBbaXNTZWNvbmRhcnldPVwiaXNTZWNvbmRhcnlcIlxuICAgICAgICAgICBbaXNPdXRsaW5lXT1cImlzT3V0bGluZVwiXG4gICAgICAgICAgIFtpc1NtYWxsXT1cImlzU21hbGxcIlxuICAgICAgICAgICBbaXNMYXJnZV09XCJpc0xhcmdlXCJcbiAgICAgICAgICAgdHlwZUNsYXNzPVwie3t0eXBlQ2xhc3N9fVwiXG4gICAgICAgICAgIFtzdHlsZUNsYXNzXT1cImJ1dHRvblN0eWxlQ2xhc3NcIlxuICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkXCJcbiAgICAgICAgICAgW2lzRmxhdF09XCJpc0ZsYXRCdXR0b25cIlxuICAgICAgICAgICBbaXNCbG9ja109XCJpc0Jsb2NrXCJcbiAgICAgICAgICAgW2F0dHIuZGF0YS1lMmVdPVwiZTJlQXR0clwiPlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cImljb25DbGFzc1wiIGNsYXNzPVwidXgtYnV0dG9uX19pY29uIGV1aS1pY29uLWZ3IHt7aWNvbkNsYXNzfX1cIiBbY2xhc3MubXMtMl09XCJsYWJlbFwiPjwvc3Bhbj5cbjwvdXgtYnV0dG9uPlxuXG48YSAqbmdJZj1cImlzTGlua1RvZ2dsZVwiIFtjbGFzcy51eC1kcm9wZG93bi10b2dnbGVdPVwiaXNTaG93RHJvcGRvd25Ub2dnbGVcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWFpbk1lbnVcIj5cbiAgICA8c3BhbiBjbGFzcz1cInV4LWJ1dHRvbl9faWNvbiBldWktaWNvbi1mdyB7e2ljb25DbGFzc319XCI+PC9zcGFuPlxuICAgIDxzcGFuICpuZ0lmPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvc3Bhbj5cbjwvYT5cblxuPG1hdC1tZW51ICNtYWluTWVudT1cIm1hdE1lbnVcIiBbeFBvc2l0aW9uXT1cImlzRHJvcERvd25SaWdodEFsaWduZWQgPyAnYmVmb3JlJyA6ICdhZnRlcidcIj5cbiAgICA8c3BhbiAqbmdGb3I9XCJsZXQgbGluayBvZiBsaW5rczsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XG4gICAgICAgIDxzcGFuICpuZ0lmPVwibGluay5jaGlsZHJlbiAmJiBsaW5rLmNoaWxkcmVuLmxlbmd0aCA+IDBcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LW1lbnUtaXRlbSBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudS5jaGlsZE1lbnVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3MuZXVpLXUtZGlzYWJsZWRdPVwibGluay5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImxpbmsuZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNsaWNrKGxpbmspXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJsaW5rLmljb25DbGFzc1wiXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ1eC1kcm9wZG93bi1idXR0b24taXRlbV9faWNvbiBldWktaWNvbi1mdyB7eyBsaW5rLmljb25DbGFzcyB9fVwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBsaW5rLmxhYmVsIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8dXgtZHJvcGRvd24tYnV0dG9uLWl0ZW0gI21lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGFzQ2hpbGRyZW5dPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpbmtzXT1cImxpbmsuY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlMmVBdHRyXT1cImxpbmsuZTJlQXR0clwiPlxuICAgICAgICAgICAgPC91eC1kcm9wZG93bi1idXR0b24taXRlbT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiAqbmdJZj1cIiFsaW5rLmNoaWxkcmVuIHx8IGxpbmsuY2hpbGRyZW4ubGVuZ3RoID09PSAwXCI+XG4gICAgICAgICAgICA8dXgtZHJvcGRvd24tYnV0dG9uLWl0ZW0gW2xpbmtdPVwibGlua1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGxpbmtTZWxlY3RlZCk9XCJzZWxlY3REcm9wZG93bkl0ZW0oJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2UyZUF0dHJdPVwibGluay5lMmVBdHRyXCI+XG4gICAgICAgICAgICA8L3V4LWRyb3Bkb3duLWJ1dHRvbi1pdGVtPlxuICAgICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbGlua3MgfHwgbGlua3MubGVuZ3RoID09PSAwXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1eC1kcm9wZG93bi1idXR0b25fX2NvbnRlbnRcIlxuICAgICAgICAgICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cImRyb3Bkb3duTWF4SGVpZ2h0XCJcbiAgICAgICAgICAgICBbc3R5bGUubWluLWhlaWdodF09XCJkcm9wZG93bk1pbkhlaWdodFwiXG4gICAgICAgICAgICAgW3N0eWxlLm1pbi13aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgICAgICAgW2lkXT1cImlkXCJcbiAgICAgICAgICAgICAoa2V5ZG93bik9XCJvbktleURvd24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbjwvbWF0LW1lbnU+XG4iXX0=
@@ -390,7 +390,7 @@ export class UxFormControlComponent {
390
390
  provide: NG_VALIDATORS,
391
391
  useExisting: forwardRef((() => UxFormControlComponent)),
392
392
  multi: true,
393
- }], viewQueries: [{ propertyName: "radioElement", first: true, predicate: ["radioElement"], descendants: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "formControlRef", first: true, predicate: ["formControlRef"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\" [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control ux-form-control__custom-select {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n\t\t\tattr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{placeholderLabel}}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{item.value}}\" class=\"ux-u-font-regular\">\n <option *ngFor=\"let opt of item.options\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{item[selectValueName]}}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"! selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{styleClass}}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n class=\"ux-input__checkbox {{styleClass}}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input #radioElement #formControlRef\n id=\"{{generatedId}}\"\n class=\"ux-input__radio {{styleClass}}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\"/>\n <label for=\"{{generatedId}}\" class=\"radio-label\">{{radioLabel || '&nbsp;'}}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div *ngIf=\"radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{radioLabel}}</div>\n <div *ngIf=\"!radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div *ngIf=\"isReadOnly\"\n id=\"{{generatedId}}\"\n class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value}}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"/>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback *ngIf=\"validationErrorMessage\"\n typeClass=\"{{validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{validationErrorMessage && $any(validationErrorMessage).id ?\n ($any(validationErrorMessage).id|translate:$any(validationErrorMessage).params) :\n validationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{maxLengthValidationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n", styles: ["@charset \"UTF-8\";input::-webkit-input-placeholder{color:var(--eui-base-color-grey-25)!important}input::-moz-placeholder{color:var(--eui-base-color-grey-25)!important}input:-ms-input-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}input:-moz-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea::-webkit-input-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea::-moz-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea:-ms-input-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea:-moz-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}:focus::-webkit-input-placeholder{color:transparent!important}:focus::-ms-input-placeholder{color:transparent!important}:focus::-moz-placeholder{color:transparent!important}input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:focus,select.ux-form-control:focus,textarea.ux-form-control:focus{border:1px solid var(--eui-base-color-primary-75);box-shadow:var(--eui-base-shadow-1)}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}input[type=checkbox].ux-input__checkbox,input[type=radio].ux-input__radio{box-shadow:none;height:20px!important;opacity:1!important;top:6px;width:20px!important}input[type=checkbox].ux-input__checkbox[readonly]+label:hover,input[type=radio].ux-input__radio[readonly]+label:hover{cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label,input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-text);cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label:before,input[type=checkbox].ux-input__checkbox:disabled:checked+label:before,input[type=radio].ux-input__radio:disabled+label:before,input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:transparent;opacity:.65}input[type=checkbox].ux-input__checkbox:focus :before,input[type=radio].ux-input__radio:focus :before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:focus+label:before,input[type=radio].ux-input__radio:focus+label:before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:hover+label:before,input[type=radio].ux-input__radio:hover+label:before{background-color:var(--eui-base-color-white)}input[type=checkbox].ux-input__checkbox:active+label:before,input[type=radio].ux-input__radio:active+label:before{transition-duration:0s}input[type=checkbox].ux-input__checkbox+label,input[type=radio].ux-input__radio+label{cursor:pointer;margin-right:var(--eui-base-spacing-m);margin-top:var(--eui-base-spacing-2xs);position:relative;-webkit-user-select:none;user-select:none;vertical-align:middle}input[type=checkbox].ux-input__checkbox+label:before,input[type=radio].ux-input__radio+label:before{background-color:#fff;border:2px solid var(--eui-base-color-grey-15);color:var(--eui-base-color-primary-100);content:\"\";left:0;position:absolute;text-align:center}input[type=checkbox].ux-input__checkbox+label:after,input[type=radio].ux-input__radio+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\";left:var(--eui-base-spacing-2xs);margin-top:-2px;position:absolute}input[type=checkbox].ux-input__checkbox+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\"}.eui-t-compact input[type=checkbox].ux-input__checkbox+label:after{top:3px}input[type=checkbox].ux-input__checkbox+.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;left:6px;top:-6px}input[type=checkbox].ux-input__checkbox:checked+label:before{background:var(--eui-base-color-primary-100)}input[type=checkbox].ux-input__checkbox[readonly]+label:before,input[type=checkbox].ux-input__checkbox[readonly]:checked+label:before{background:var(--eui-base-color-grey-20)}input[type=radio].ux-input__radio+label{cursor:pointer}input[type=radio].ux-input__radio+label:after{border-width:0;left:5px;margin-top:-1px}.eui-t-compact input[type=radio].ux-input__radio+label:after{height:9px!important;left:4px!important;width:9px!important}input[type=radio].ux-input__radio:checked+label:after{background:var(--eui-base-color-primary-100);border-width:0;left:5px;margin-top:-1px}input[type=radio].ux-input__radio:checked+label:before{background:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white)}input[type=radio].ux-input__radio:focus:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;outline:none;box-shadow:var(--eui-base-shadow-2)}input[type=radio].ux-input__radio:focus+label:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;box-shadow:inset 0 0 0 3px var(--eui-base-color-white),0 3px 6px #00000029,0 3px 6px #0000003b;outline:none}input[type=radio].ux-input__radio+label:before,input[type=radio].ux-input__radio+label:after{border-radius:50%}input[type=radio][readonly].ux-input__radio+label:before,input[type=radio][readonly].ux-input__radio+label:after,input[type=radio][readonly].ux-input__radio:checked+label:before,input[type=radio][readonly].ux-input__radio:checked+label:after{background:var(--eui-base-color-grey-10);box-shadow:none;cursor:not-allowed;outline:none}input[type=radio].ux-input__radio[readonly]+label{color:var(--eui-base-color-grey-90);padding:0;font-style:normal;font-weight:700}input[type=radio].ux-input__radio[readonly]+label:after,input[type=radio].ux-input__radio[readonly]+label:before{display:none}input[type=radio].ux-input__radio:disabled{opacity:var(--eui-base-disabled-opacity);pointer-events:none}input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled+label:before{background:var(--eui-base-color-grey-10);border:2px solid var(--eui-base-color-grey-25);box-shadow:none}input[type=radio].ux-input__radio:disabled:checked{pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label:after{background:var(--eui-base-color-primary-10)}input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white);opacity:var(--eui-base-disabled-opacity)}input[type=checkbox].ux-input__checkbox[readonly]+label,input[type=radio].ux-input__radio[readonly]+label{cursor:default}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UxControlFeedbackComponent, selector: "ux-control-feedback", inputs: ["styleClass", "typeClass", "e2eAttr"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.UxMaxlengthDirective, selector: "input[type=\"text\"][uxMaxlength], input[type=\"password\"][uxMaxlength], textarea[uxMaxlength]", inputs: ["uxMaxlength", "isShowMaxlengthCounter"], outputs: ["validityChange"] }, { kind: "directive", type: i4.UxAutoResizeDirective, selector: "textarea[uxAutoResize]", inputs: ["uxAutoResize", "minRows"] }, { kind: "directive", type: i4.UxCleaveDirective, selector: "[uxCleave]", inputs: ["uxCleave", "readOnly", "isModelNumber"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
393
+ }], viewQueries: [{ propertyName: "radioElement", first: true, predicate: ["radioElement"], descendants: true }, { propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }, { propertyName: "formControlRef", first: true, predicate: ["formControlRef"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\" [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control ux-form-control__custom-select {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n\t\t\tattr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{placeholderLabel}}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{item.value}}\" class=\"ux-u-font-regular\">\n <option *ngFor=\"let opt of item.options\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{item[selectValueName]}}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"! selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{styleClass}}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n class=\"ux-input__checkbox {{styleClass}}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input #radioElement #formControlRef\n id=\"{{generatedId}}\"\n class=\"ux-input__radio {{styleClass}}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\"/>\n <label for=\"{{generatedId}}\" class=\"radio-label\">{{radioLabel || '&nbsp;'}}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div *ngIf=\"radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{radioLabel}}</div>\n <div *ngIf=\"!radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div *ngIf=\"isReadOnly\"\n id=\"{{generatedId}}\"\n class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value}}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"/>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback *ngIf=\"validationErrorMessage\"\n typeClass=\"{{validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{validationErrorMessage && $any(validationErrorMessage).id ?\n ($any(validationErrorMessage).id|translate:$any(validationErrorMessage).params) :\n validationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{maxLengthValidationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n", styles: ["@charset \"UTF-8\";input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:focus,select.ux-form-control:focus,textarea.ux-form-control:focus{border:1px solid var(--eui-base-color-primary-75);box-shadow:var(--eui-base-shadow-1)}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}input[type=checkbox].ux-input__checkbox,input[type=radio].ux-input__radio{box-shadow:none;height:20px!important;opacity:1!important;top:6px;width:20px!important}input[type=checkbox].ux-input__checkbox[readonly]+label:hover,input[type=radio].ux-input__radio[readonly]+label:hover{cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label,input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-text);cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label:before,input[type=checkbox].ux-input__checkbox:disabled:checked+label:before,input[type=radio].ux-input__radio:disabled+label:before,input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:transparent;opacity:.65}input[type=checkbox].ux-input__checkbox:focus :before,input[type=radio].ux-input__radio:focus :before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:focus+label:before,input[type=radio].ux-input__radio:focus+label:before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:hover+label:before,input[type=radio].ux-input__radio:hover+label:before{background-color:var(--eui-base-color-white)}input[type=checkbox].ux-input__checkbox:active+label:before,input[type=radio].ux-input__radio:active+label:before{transition-duration:0s}input[type=checkbox].ux-input__checkbox+label,input[type=radio].ux-input__radio+label{cursor:pointer;margin-right:var(--eui-base-spacing-m);margin-top:var(--eui-base-spacing-2xs);position:relative;-webkit-user-select:none;user-select:none;vertical-align:middle}input[type=checkbox].ux-input__checkbox+label:before,input[type=radio].ux-input__radio+label:before{background-color:#fff;border:2px solid var(--eui-base-color-grey-15);color:var(--eui-base-color-primary-100);content:\"\";left:0;position:absolute;text-align:center}input[type=checkbox].ux-input__checkbox+label:after,input[type=radio].ux-input__radio+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\";left:var(--eui-base-spacing-2xs);margin-top:-2px;position:absolute}input[type=checkbox].ux-input__checkbox+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\"}.eui-t-compact input[type=checkbox].ux-input__checkbox+label:after{top:3px}input[type=checkbox].ux-input__checkbox+.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;left:6px;top:-6px}input[type=checkbox].ux-input__checkbox:checked+label:before{background:var(--eui-base-color-primary-100)}input[type=checkbox].ux-input__checkbox[readonly]+label:before,input[type=checkbox].ux-input__checkbox[readonly]:checked+label:before{background:var(--eui-base-color-grey-20)}input[type=radio].ux-input__radio+label{cursor:pointer}input[type=radio].ux-input__radio+label:after{border-width:0;left:5px;margin-top:-1px}.eui-t-compact input[type=radio].ux-input__radio+label:after{height:9px!important;left:4px!important;width:9px!important}input[type=radio].ux-input__radio:checked+label:after{background:var(--eui-base-color-primary-100);border-width:0;left:5px;margin-top:-1px}input[type=radio].ux-input__radio:checked+label:before{background:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white)}input[type=radio].ux-input__radio:focus:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;outline:none;box-shadow:var(--eui-base-shadow-2)}input[type=radio].ux-input__radio:focus+label:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;box-shadow:inset 0 0 0 3px var(--eui-base-color-white),0 3px 6px #00000029,0 3px 6px #0000003b;outline:none}input[type=radio].ux-input__radio+label:before,input[type=radio].ux-input__radio+label:after{border-radius:50%}input[type=radio][readonly].ux-input__radio+label:before,input[type=radio][readonly].ux-input__radio+label:after,input[type=radio][readonly].ux-input__radio:checked+label:before,input[type=radio][readonly].ux-input__radio:checked+label:after{background:var(--eui-base-color-grey-10);box-shadow:none;cursor:not-allowed;outline:none}input[type=radio].ux-input__radio[readonly]+label{color:var(--eui-base-color-grey-90);padding:0;font-style:normal;font-weight:700}input[type=radio].ux-input__radio[readonly]+label:after,input[type=radio].ux-input__radio[readonly]+label:before{display:none}input[type=radio].ux-input__radio:disabled{opacity:var(--eui-base-disabled-opacity);pointer-events:none}input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled+label:before{background:var(--eui-base-color-grey-10);border:2px solid var(--eui-base-color-grey-25);box-shadow:none}input[type=radio].ux-input__radio:disabled:checked{pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label:after{background:var(--eui-base-color-primary-10)}input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white);opacity:var(--eui-base-disabled-opacity)}input[type=checkbox].ux-input__checkbox[readonly]+label,input[type=radio].ux-input__radio[readonly]+label{cursor:default}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.UxControlFeedbackComponent, selector: "ux-control-feedback", inputs: ["styleClass", "typeClass", "e2eAttr"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.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: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.UxMaxlengthDirective, selector: "input[type=\"text\"][uxMaxlength], input[type=\"password\"][uxMaxlength], textarea[uxMaxlength]", inputs: ["uxMaxlength", "isShowMaxlengthCounter"], outputs: ["validityChange"] }, { kind: "directive", type: i4.UxAutoResizeDirective, selector: "textarea[uxAutoResize]", inputs: ["uxAutoResize", "minRows"] }, { kind: "directive", type: i4.UxCleaveDirective, selector: "[uxCleave]", inputs: ["uxCleave", "readOnly", "isModelNumber"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], encapsulation: i0.ViewEncapsulation.None });
394
394
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4", ngImport: i0, type: UxFormControlComponent, decorators: [{
395
395
  type: Component,
396
396
  args: [{ selector: 'ux-form-control', providers: [{
@@ -401,7 +401,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0-next.4",
401
401
  provide: NG_VALIDATORS,
402
402
  useExisting: forwardRef((() => UxFormControlComponent)),
403
403
  multi: true,
404
- }], encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\" [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control ux-form-control__custom-select {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n\t\t\tattr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{placeholderLabel}}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{item.value}}\" class=\"ux-u-font-regular\">\n <option *ngFor=\"let opt of item.options\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{item[selectValueName]}}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"! selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{styleClass}}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n class=\"ux-input__checkbox {{styleClass}}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input #radioElement #formControlRef\n id=\"{{generatedId}}\"\n class=\"ux-input__radio {{styleClass}}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\"/>\n <label for=\"{{generatedId}}\" class=\"radio-label\">{{radioLabel || '&nbsp;'}}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div *ngIf=\"radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{radioLabel}}</div>\n <div *ngIf=\"!radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div *ngIf=\"isReadOnly\"\n id=\"{{generatedId}}\"\n class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value}}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"/>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback *ngIf=\"validationErrorMessage\"\n typeClass=\"{{validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{validationErrorMessage && $any(validationErrorMessage).id ?\n ($any(validationErrorMessage).id|translate:$any(validationErrorMessage).params) :\n validationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{maxLengthValidationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n", styles: ["@charset \"UTF-8\";input::-webkit-input-placeholder{color:var(--eui-base-color-grey-25)!important}input::-moz-placeholder{color:var(--eui-base-color-grey-25)!important}input:-ms-input-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}input:-moz-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea::-webkit-input-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea::-moz-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea:-ms-input-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}textarea:-moz-placeholder{color:var(--eui-base-color-grey-80)!important;font-style:normal;font-weight:300}:focus::-webkit-input-placeholder{color:transparent!important}:focus::-ms-input-placeholder{color:transparent!important}:focus::-moz-placeholder{color:transparent!important}input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:focus,select.ux-form-control:focus,textarea.ux-form-control:focus{border:1px solid var(--eui-base-color-primary-75);box-shadow:var(--eui-base-shadow-1)}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}input[type=checkbox].ux-input__checkbox,input[type=radio].ux-input__radio{box-shadow:none;height:20px!important;opacity:1!important;top:6px;width:20px!important}input[type=checkbox].ux-input__checkbox[readonly]+label:hover,input[type=radio].ux-input__radio[readonly]+label:hover{cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label,input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-text);cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label:before,input[type=checkbox].ux-input__checkbox:disabled:checked+label:before,input[type=radio].ux-input__radio:disabled+label:before,input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:transparent;opacity:.65}input[type=checkbox].ux-input__checkbox:focus :before,input[type=radio].ux-input__radio:focus :before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:focus+label:before,input[type=radio].ux-input__radio:focus+label:before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:hover+label:before,input[type=radio].ux-input__radio:hover+label:before{background-color:var(--eui-base-color-white)}input[type=checkbox].ux-input__checkbox:active+label:before,input[type=radio].ux-input__radio:active+label:before{transition-duration:0s}input[type=checkbox].ux-input__checkbox+label,input[type=radio].ux-input__radio+label{cursor:pointer;margin-right:var(--eui-base-spacing-m);margin-top:var(--eui-base-spacing-2xs);position:relative;-webkit-user-select:none;user-select:none;vertical-align:middle}input[type=checkbox].ux-input__checkbox+label:before,input[type=radio].ux-input__radio+label:before{background-color:#fff;border:2px solid var(--eui-base-color-grey-15);color:var(--eui-base-color-primary-100);content:\"\";left:0;position:absolute;text-align:center}input[type=checkbox].ux-input__checkbox+label:after,input[type=radio].ux-input__radio+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\";left:var(--eui-base-spacing-2xs);margin-top:-2px;position:absolute}input[type=checkbox].ux-input__checkbox+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\"}.eui-t-compact input[type=checkbox].ux-input__checkbox+label:after{top:3px}input[type=checkbox].ux-input__checkbox+.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;left:6px;top:-6px}input[type=checkbox].ux-input__checkbox:checked+label:before{background:var(--eui-base-color-primary-100)}input[type=checkbox].ux-input__checkbox[readonly]+label:before,input[type=checkbox].ux-input__checkbox[readonly]:checked+label:before{background:var(--eui-base-color-grey-20)}input[type=radio].ux-input__radio+label{cursor:pointer}input[type=radio].ux-input__radio+label:after{border-width:0;left:5px;margin-top:-1px}.eui-t-compact input[type=radio].ux-input__radio+label:after{height:9px!important;left:4px!important;width:9px!important}input[type=radio].ux-input__radio:checked+label:after{background:var(--eui-base-color-primary-100);border-width:0;left:5px;margin-top:-1px}input[type=radio].ux-input__radio:checked+label:before{background:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white)}input[type=radio].ux-input__radio:focus:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;outline:none;box-shadow:var(--eui-base-shadow-2)}input[type=radio].ux-input__radio:focus+label:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;box-shadow:inset 0 0 0 3px var(--eui-base-color-white),0 3px 6px #00000029,0 3px 6px #0000003b;outline:none}input[type=radio].ux-input__radio+label:before,input[type=radio].ux-input__radio+label:after{border-radius:50%}input[type=radio][readonly].ux-input__radio+label:before,input[type=radio][readonly].ux-input__radio+label:after,input[type=radio][readonly].ux-input__radio:checked+label:before,input[type=radio][readonly].ux-input__radio:checked+label:after{background:var(--eui-base-color-grey-10);box-shadow:none;cursor:not-allowed;outline:none}input[type=radio].ux-input__radio[readonly]+label{color:var(--eui-base-color-grey-90);padding:0;font-style:normal;font-weight:700}input[type=radio].ux-input__radio[readonly]+label:after,input[type=radio].ux-input__radio[readonly]+label:before{display:none}input[type=radio].ux-input__radio:disabled{opacity:var(--eui-base-disabled-opacity);pointer-events:none}input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled+label:before{background:var(--eui-base-color-grey-10);border:2px solid var(--eui-base-color-grey-25);box-shadow:none}input[type=radio].ux-input__radio:disabled:checked{pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label:after{background:var(--eui-base-color-primary-10)}input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white);opacity:var(--eui-base-disabled-opacity)}input[type=checkbox].ux-input__checkbox[readonly]+label,input[type=radio].ux-input__radio[readonly]+label{cursor:default}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}\n"] }]
404
+ }], encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"isInputText && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-tf-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\" [(ngModel)]=\"inputValue\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\" />\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && !isReadOnly\">\n <span attr.data-e2e=\"{{ e2eAttr }}-ta-rw\">\n <textarea #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [attr.rows]=\"rows\"\n [minRows]=\"minRows\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n [uxAutoResize]=\"isTextareaAutoresize\">\n </textarea>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isSelect && !isReadOnly\">\n <select #formControlRef id=\"{{generatedId}}\"\n class=\"ux-form-control ux-form-control__custom-select {{inputStyleClass}}\"\n [(ngModel)]=\"inputValue\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n\t\t\tattr.data-e2e=\"{{ e2eAttr }}-sel-rw\">\n <ng-container *ngIf=\"selectOptions\">\n <option *ngIf=\"!selectNoBlankLine\" [value]=\"'' || null\" class=\"ux-u-color-grey\">{{placeholderLabel}}</option>\n <ng-template [ngIf]=\"isSelectHasOptions\">\n <ng-template ngFor let-item [ngForOf]=\"selectOptions\">\n <optgroup *ngIf=\"item.options\" label=\"{{item.value}}\" class=\"ux-u-font-regular\">\n <option *ngFor=\"let opt of item.options\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </optgroup>\n <option *ngIf=\"!item.options\" [value]=\"item[selectKeyName]\" [selected]=\"inputValue === item[selectKeyName]\">\n {{item[selectValueName]}}\n </option>\n </ng-template>\n </ng-template>\n\n <ng-template [ngIf]=\"!isSelectHasOptions\">\n <option *ngFor=\"let opt of selectOptions\" [value]=\"opt[selectKeyName]\" [selected]=\"inputValue === opt[selectKeyName]\">\n {{opt[selectValueName]}}\n </option>\n </ng-template>\n </ng-container>\n <ng-content *ngIf=\"! selectOptions\"></ng-content>\n </select>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && isSelect\">\n <!-- <input type=\"text\" role=\"combobox\" [attr.aria-readonly]=\"true\" readonly=\"readonly\" id=\"{{generatedId}}\" class=\"ux-form-control__read-only {{inputStyleClass}}\" [value]=\"selectValue\" [tabindex]=\"tabindex\" /> -->\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{selectValue === '' || !selectValue ? emptyValueTextOnReadOnly : selectValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && !isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n type=\"checkbox\"\n class=\"ux-input__checkbox {{styleClass}}\"\n [(ngModel)]=\"inputValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-rw\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isCheckbox && isReadOnly\">\n <input #formControlRef id=\"{{generatedId}}\"\n class=\"ux-input__checkbox {{styleClass}}\"\n type=\"checkbox\"\n [checked]=\"inputValue\"\n onclick=\"return false;\"\n [tabindex]=\"tabindex\"\n readonly=\"readonly\"\n aria-readonly=\"true\"\n attr.data-e2e=\"{{ e2eAttr }}-cb-ro\" />\n <label for=\"{{generatedId}}\" *ngIf=\"checkboxLabel\">{{checkboxLabel}}</label>\n <label for=\"{{generatedId}}\" role=\"presentation\" *ngIf=\"!checkboxLabel\">&nbsp;</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && !isReadOnly\">\n <input #radioElement #formControlRef\n id=\"{{generatedId}}\"\n class=\"ux-input__radio {{styleClass}}\"\n type=\"radio\"\n [checked]=\"checked\"\n [name]=\"formControlName + groupId\"\n [value]=\"formControlValue\"\n (click)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n [disabled]=\"isDisabled\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"\n attr.data-e2e=\"{{ e2eAttr }}-ra-rw\"/>\n <label for=\"{{generatedId}}\" class=\"radio-label\">{{radioLabel || '&nbsp;'}}</label>\n</ng-container>\n\n<ng-container *ngIf=\"isRadio && isReadOnly && isRadioOptionChecked\">\n <div *ngIf=\"radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{radioLabel}}</div>\n <div *ngIf=\"!radioLabel\" id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isReadOnly && !isCheckbox && !isNumber && !isSelect && !isRadio && !isTextarea\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\" attr.data-e2e=\"{{ e2eAttr }}-ro\">{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</div>\n</ng-container>\n\n<ng-container *ngIf=\"isNumber\">\n <div *ngIf=\"isReadOnly\"\n id=\"{{generatedId}}\"\n class=\"ux-form-group--read-only {{inputStyleClass}}\"\n [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-sel-ro\">{{inputRef.value === '' || !inputRef.value ? emptyValueTextOnReadOnly : inputRef.value}}\n </div>\n <span [hidden]=\"isReadOnly\" attr.data-e2e=\"{{ e2eAttr }}-num-rw\">\n <input #inputRef #formControlRef id=\"{{generatedId}}\"\n type=\"text\"\n [uxCleave]=\"cleaveOptions\"\n [readOnly]=\"isReadOnly\"\n [(ngModel)]=\"inputValue\"\n [isModelNumber]=\"true\"\n class=\"ux-form-control {{inputStyleClass}}\"\n (change)=\"onChange($event)\"\n (keyup)=\"onChange($event)\"\n (blur)=\"onTouched($event)\"\n (focus)=\"onFocus($event)\"\n placeholder=\"{{placeholderLabel}}\"\n [disabled]=\"isDisabled\"\n [uxMaxlength]=\"maxlength\" (validityChange)=\"OnMaxLengthValidityChange($event)\"\n [isShowMaxlengthCounter]=\"isShowMaxlengthCounter\"\n [tabindex]=\"tabindex\"\n [attr.aria-invalid]=\"ariaInvalid\"\n [attr.aria-required]=\"isRequired\"/>\n </span>\n</ng-container>\n\n<ng-container *ngIf=\"isTextarea && isReadOnly\">\n <div id=\"{{generatedId}}\" class=\"ux-form-group--read-only {{inputStyleClass}}\" [tabindex]=\"tabindex\"\n attr.data-e2e=\"{{ e2eAttr }}-ro\">\n <pre>{{inputValue === '' || !inputValue ? emptyValueTextOnReadOnly : inputValue}}</pre>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"!isFieldValid && !hasFormGroupParent\">\n <ux-control-feedback *ngIf=\"validationErrorMessage\"\n typeClass=\"{{validationErrorType ? validationErrorType : 'danger' }}\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n {{validationErrorMessage && $any(validationErrorMessage).id ?\n ($any(validationErrorMessage).id|translate:$any(validationErrorMessage).params) :\n validationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n\n<ng-container *ngIf=\"!isMaxLengthValid\">\n <ux-control-feedback *ngIf=\"maxLengthValidationErrorMessage\" typeClass=\"danger\" attr.data-e2e=\"{{ e2eAttr }}\">\n {{maxLengthValidationErrorMessage}}\n </ux-control-feedback>\n</ng-container>\n", styles: ["@charset \"UTF-8\";input.ux-form-control,select.ux-form-control,textarea.ux-form-control{border:1px solid var(--eui-base-color-grey-20);border-radius:var(--eui-base-border-radius);color:var(--eui-base-color-grey-100);font-size:var(--eui-base-font-size);font-style:normal;font-weight:400;height:calc(var(--eui-base-spacing-2xl) + 2px);padding:var(--eui-base-spacing-xs) var(--eui-base-spacing-s);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}input.ux-form-control:focus,select.ux-form-control:focus,textarea.ux-form-control:focus{border:1px solid var(--eui-base-color-primary-75);box-shadow:var(--eui-base-shadow-1)}input::-ms-clear{display:none}.ux-clearable-input-wrapper{align-items:center;background-color:var(--eui-base-color-white);color:var(--eui-base-color-grey-35);cursor:pointer;display:flex;font-size:var(--eui-base-font-size-m);-webkit-user-select:none;user-select:none}.ux-clearable-input-wrapper:before{position:absolute;right:var(--eui-base-spacing-s)}.ux-clearable-input-wrapper:hover{color:var(--eui-base-color-grey-100)}input[type=checkbox].ux-input__checkbox,input[type=radio].ux-input__radio{box-shadow:none;height:20px!important;opacity:1!important;top:6px;width:20px!important}input[type=checkbox].ux-input__checkbox[readonly]+label:hover,input[type=radio].ux-input__radio[readonly]+label:hover{cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label,input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-text);cursor:not-allowed}input[type=checkbox].ux-input__checkbox:disabled+label:before,input[type=checkbox].ux-input__checkbox:disabled:checked+label:before,input[type=radio].ux-input__radio:disabled+label:before,input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:transparent;opacity:.65}input[type=checkbox].ux-input__checkbox:focus :before,input[type=radio].ux-input__radio:focus :before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:focus+label:before,input[type=radio].ux-input__radio:focus+label:before{background-color:var(--eui-base-color-white);outline:2px solid var(--eui-base-color-accessible-focus);outline-offset:-2px;-moz-outline-radius:var(--eui-base-border-radius);transition:outline .15s ease-in-out,border .15s ease-in-out;box-shadow:var(--eui-base-shadow-2)}input[type=checkbox].ux-input__checkbox:hover+label:before,input[type=radio].ux-input__radio:hover+label:before{background-color:var(--eui-base-color-white)}input[type=checkbox].ux-input__checkbox:active+label:before,input[type=radio].ux-input__radio:active+label:before{transition-duration:0s}input[type=checkbox].ux-input__checkbox+label,input[type=radio].ux-input__radio+label{cursor:pointer;margin-right:var(--eui-base-spacing-m);margin-top:var(--eui-base-spacing-2xs);position:relative;-webkit-user-select:none;user-select:none;vertical-align:middle}input[type=checkbox].ux-input__checkbox+label:before,input[type=radio].ux-input__radio+label:before{background-color:#fff;border:2px solid var(--eui-base-color-grey-15);color:var(--eui-base-color-primary-100);content:\"\";left:0;position:absolute;text-align:center}input[type=checkbox].ux-input__checkbox+label:after,input[type=radio].ux-input__radio+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\";left:var(--eui-base-spacing-2xs);margin-top:-2px;position:absolute}input[type=checkbox].ux-input__checkbox+label:after{background-color:transparent;border-color:var(--eui-base-color-white);content:\"\"}.eui-t-compact input[type=checkbox].ux-input__checkbox+label:after{top:3px}input[type=checkbox].ux-input__checkbox+.checkbox-label-indeterminate:after{background:transparent;color:var(--eui-base-color-white);content:\"\\2013\"!important;left:6px;top:-6px}input[type=checkbox].ux-input__checkbox:checked+label:before{background:var(--eui-base-color-primary-100)}input[type=checkbox].ux-input__checkbox[readonly]+label:before,input[type=checkbox].ux-input__checkbox[readonly]:checked+label:before{background:var(--eui-base-color-grey-20)}input[type=radio].ux-input__radio+label{cursor:pointer}input[type=radio].ux-input__radio+label:after{border-width:0;left:5px;margin-top:-1px}.eui-t-compact input[type=radio].ux-input__radio+label:after{height:9px!important;left:4px!important;width:9px!important}input[type=radio].ux-input__radio:checked+label:after{background:var(--eui-base-color-primary-100);border-width:0;left:5px;margin-top:-1px}input[type=radio].ux-input__radio:checked+label:before{background:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white)}input[type=radio].ux-input__radio:focus:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;outline:none;box-shadow:var(--eui-base-shadow-2)}input[type=radio].ux-input__radio:focus+label:before{border:2px solid transparent;border-color:var(--eui-base-color-accent-120);border-radius:50%;box-shadow:inset 0 0 0 3px var(--eui-base-color-white),0 3px 6px #00000029,0 3px 6px #0000003b;outline:none}input[type=radio].ux-input__radio+label:before,input[type=radio].ux-input__radio+label:after{border-radius:50%}input[type=radio][readonly].ux-input__radio+label:before,input[type=radio][readonly].ux-input__radio+label:after,input[type=radio][readonly].ux-input__radio:checked+label:before,input[type=radio][readonly].ux-input__radio:checked+label:after{background:var(--eui-base-color-grey-10);box-shadow:none;cursor:not-allowed;outline:none}input[type=radio].ux-input__radio[readonly]+label{color:var(--eui-base-color-grey-90);padding:0;font-style:normal;font-weight:700}input[type=radio].ux-input__radio[readonly]+label:after,input[type=radio].ux-input__radio[readonly]+label:before{display:none}input[type=radio].ux-input__radio:disabled{opacity:var(--eui-base-disabled-opacity);pointer-events:none}input[type=radio].ux-input__radio:disabled+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled+label:before{background:var(--eui-base-color-grey-10);border:2px solid var(--eui-base-color-grey-25);box-shadow:none}input[type=radio].ux-input__radio:disabled:checked{pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label{color:var(--eui-base-color-grey-25);pointer-events:none}input[type=radio].ux-input__radio:disabled:checked+label:after{background:var(--eui-base-color-primary-10)}input[type=radio].ux-input__radio:disabled:checked+label:before{background-color:var(--eui-base-color-primary-100);border:2px solid var(--eui-base-color-grey-25);box-shadow:inset 0 0 2px 3px var(--eui-base-color-white);opacity:var(--eui-base-disabled-opacity)}input[type=checkbox].ux-input__checkbox[readonly]+label,input[type=radio].ux-input__radio[readonly]+label{cursor:default}@keyframes borderscale{50%{box-shadow:0 0 0 2px var(--eui-base-color-primary-110)}}select.ux-form-control:not([readonly]){-webkit-appearance:none;appearance:none;background-color:var(--eui-base-color-white);background-image:url('data:image/svg+xml;utf8,<svg viewBox=\"0 0 4 5\" fill=\"black\" xmlns=\"http://www.w3.org/2000/svg\" name=\"arrow-up-down\" aria-label=\"Close menu\" role=\"img\"><path d=\"M2 0L0 2h4zm0 5L0 3h4z\"/></svg>');background-position:calc(100% - var(--eui-base-spacing-s)) center;background-repeat:no-repeat;background-size:var(--eui-base-spacing-xs);padding-right:var(--eui-base-spacing-xl)}:host{width:100%}.ux-form-control{background-clip:padding-box;background-color:var(--eui-base-color-white);border-radius:var(--eui-border-radius-base);display:block;line-height:var(--eui-base-line-height);transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;width:100%}.ux-form-control:disabled,.ux-form-control[readonly]{background-color:var(--eui-base-color-grey-5)!important;color:var(--eui-base-color-grey-80)!important}.ux-form-control.custom-select,.ux-form-control.ux-form-control__custom-select{padding-right:var(--eui-base-spacing-2xl);text-overflow:ellipsis}select.ux-form-control[multiple],select.ux-form-control[size]{height:calc(var(--eui-base-spacing-2xl) + var(--eui-base-spacing-m) + 2px)!important;padding-right:0}select.ux-form-control:not([size]),select.ux-form-control[size=\"1\"],select.ux-form-control:not([multiple]){height:calc(var(--eui-base-spacing-2xl) + 2px)}textarea.ux-form-control{height:auto}\n"] }]
405
405
  }], ctorParameters: function () { return [{ type: i6.UxFormGroupComponent, decorators: [{
406
406
  type: Optional
407
407
  }, {