@energycap/components 0.39.5-ECAP-23220-bc-file-upload-dialog.20240111-1135 → 0.39.6-standalone-components.20240111-1648

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 (137) hide show
  1. package/esm2020/lib/components.module.mjs +73 -20
  2. package/esm2020/lib/controls/banner/banner.component.mjs +5 -5
  3. package/esm2020/lib/controls/button/button.component.mjs +6 -5
  4. package/esm2020/lib/controls/button/copy-button.directive.mjs +4 -3
  5. package/esm2020/lib/controls/button/copy-table-button.directive.mjs +4 -3
  6. package/esm2020/lib/controls/checkbox/checkbox.component.mjs +10 -8
  7. package/esm2020/lib/controls/collapsible-toggle/collapsible-toggle.component.mjs +4 -4
  8. package/esm2020/lib/controls/combobox/combobox.component.mjs +9 -9
  9. package/esm2020/lib/controls/dropdown/dropdown.component.mjs +6 -8
  10. package/esm2020/lib/controls/file-upload/file-upload.component.mjs +11 -10
  11. package/esm2020/lib/controls/form-control/form-control.component.mjs +4 -4
  12. package/esm2020/lib/controls/form-control-label/form-control-label.component.mjs +5 -4
  13. package/esm2020/lib/controls/form-group/form-group.component.mjs +5 -4
  14. package/esm2020/lib/controls/help-popover/help-popover.component.mjs +7 -6
  15. package/esm2020/lib/controls/item-picker/item-picker.component.mjs +11 -12
  16. package/esm2020/lib/controls/link-button/link-button.component.mjs +3 -3
  17. package/esm2020/lib/controls/menu/menu.component.mjs +9 -8
  18. package/esm2020/lib/controls/navigation/nav-item-active.directive.mjs +4 -3
  19. package/esm2020/lib/controls/numericbox/numericbox.component.mjs +6 -6
  20. package/esm2020/lib/controls/popover/popover.component.mjs +5 -5
  21. package/esm2020/lib/controls/radio-button/radio-button.component.mjs +8 -6
  22. package/esm2020/lib/controls/select/select.component.mjs +8 -6
  23. package/esm2020/lib/controls/tabs/tabs.component.mjs +7 -6
  24. package/esm2020/lib/controls/textbox/textbox.component.mjs +8 -10
  25. package/esm2020/lib/display/app-bar/app-bar.component.mjs +6 -6
  26. package/esm2020/lib/display/avatar/avatar.component.mjs +3 -3
  27. package/esm2020/lib/display/confirm/confirm.component.mjs +12 -12
  28. package/esm2020/lib/display/dialog/dialog-group/dialog-group.component.mjs +5 -5
  29. package/esm2020/lib/display/dialog/dialog.component.mjs +4 -3
  30. package/esm2020/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.mjs +7 -7
  31. package/esm2020/lib/display/item-display/item-display.component.mjs +8 -7
  32. package/esm2020/lib/display/json-display/json-display.component.mjs +6 -6
  33. package/esm2020/lib/display/resizable/resizable.component.mjs +3 -3
  34. package/esm2020/lib/display/spinner/spinner.component.mjs +3 -3
  35. package/esm2020/lib/display/splash/splash.component.mjs +3 -3
  36. package/esm2020/lib/display/table/resizable-column.component.mjs +3 -3
  37. package/esm2020/lib/display/table/resizable-table.directive.mjs +4 -3
  38. package/esm2020/lib/display/table/searchable-table.component.mjs +7 -9
  39. package/esm2020/lib/display/table/table-detail-row.component.mjs +3 -3
  40. package/esm2020/lib/display/table/table-locked-column.component.mjs +3 -3
  41. package/esm2020/lib/display/table/table-master-header-row.component.mjs +4 -4
  42. package/esm2020/lib/display/table/table-master-row.component.mjs +6 -6
  43. package/esm2020/lib/display/table/table-pagination.component.mjs +6 -6
  44. package/esm2020/lib/display/table/table-selectable-row.component.mjs +6 -6
  45. package/esm2020/lib/display/table/table.component.mjs +5 -5
  46. package/esm2020/lib/display/tags/tags.component.mjs +6 -5
  47. package/esm2020/lib/display/toast/toast/toast.component.mjs +8 -7
  48. package/esm2020/lib/display/toast/toaster/toaster.component.mjs +4 -4
  49. package/esm2020/lib/display/tooltip/tooltip.component.mjs +5 -5
  50. package/esm2020/lib/display/tooltip-directive/tooltip.directive.mjs +4 -3
  51. package/esm2020/lib/display/tour/tour.component.mjs +6 -6
  52. package/esm2020/lib/display/tree/tree.component.mjs +8 -10
  53. package/esm2020/lib/display/view-overlay/view-overlay.component.mjs +8 -7
  54. package/esm2020/lib/shared/directives/click-area-for/click-area-for.directive.mjs +4 -3
  55. package/esm2020/lib/shared/directives/if-viewport-width/if-viewport-width.directive.mjs +4 -3
  56. package/esm2020/lib/shared/directives/popup/popup-container.directive.mjs +6 -3
  57. package/esm2020/lib/shared/display/pipes/date-display.pipe.mjs +6 -3
  58. package/esm2020/lib/shared/display/pipes/highlight-text.pipe.mjs +4 -3
  59. package/esm2020/lib/shared/display/pipes/relative-date.pipe.mjs +4 -3
  60. package/esm2020/lib/shared/display/pipes/row-count.pipe.mjs +4 -3
  61. package/esm2020/lib/shared/display/pipes/time-display.pipe.mjs +6 -3
  62. package/esm2020/lib/shared/page/page-title/page-title.component.mjs +5 -5
  63. package/esm2020/lib/shared/page/page-view/page-view.component.mjs +10 -11
  64. package/esm2020/lib/shared/testing/public-mocks.spec.mjs +6 -3
  65. package/esm2020/lib/shared/wizard/wizard-buttons/wizard-buttons.component.mjs +5 -5
  66. package/esm2020/lib/shared/wizard/wizard-progress/wizard-progress.component.mjs +6 -5
  67. package/fesm2015/energycap-components.mjs +1052 -981
  68. package/fesm2015/energycap-components.mjs.map +1 -1
  69. package/fesm2020/energycap-components.mjs +1049 -978
  70. package/fesm2020/energycap-components.mjs.map +1 -1
  71. package/lib/components.module.d.ts +72 -72
  72. package/lib/controls/banner/banner.component.d.ts +1 -1
  73. package/lib/controls/button/button.component.d.ts +1 -1
  74. package/lib/controls/button/copy-button.directive.d.ts +1 -1
  75. package/lib/controls/button/copy-table-button.directive.d.ts +1 -1
  76. package/lib/controls/checkbox/checkbox.component.d.ts +3 -3
  77. package/lib/controls/collapsible-toggle/collapsible-toggle.component.d.ts +1 -1
  78. package/lib/controls/combobox/combobox.component.d.ts +1 -1
  79. package/lib/controls/dropdown/dropdown.component.d.ts +1 -1
  80. package/lib/controls/file-upload/file-upload.component.d.ts +1 -1
  81. package/lib/controls/form-control/form-control.component.d.ts +1 -1
  82. package/lib/controls/form-control-label/form-control-label.component.d.ts +1 -1
  83. package/lib/controls/form-group/form-group.component.d.ts +1 -1
  84. package/lib/controls/help-popover/help-popover.component.d.ts +1 -1
  85. package/lib/controls/item-picker/item-picker.component.d.ts +1 -1
  86. package/lib/controls/link-button/link-button.component.d.ts +1 -1
  87. package/lib/controls/menu/menu.component.d.ts +1 -1
  88. package/lib/controls/navigation/nav-item-active.directive.d.ts +1 -1
  89. package/lib/controls/numericbox/numericbox.component.d.ts +1 -1
  90. package/lib/controls/popover/popover.component.d.ts +1 -1
  91. package/lib/controls/radio-button/radio-button.component.d.ts +1 -1
  92. package/lib/controls/select/select.component.d.ts +1 -1
  93. package/lib/controls/tabs/tabs.component.d.ts +1 -1
  94. package/lib/controls/textbox/textbox.component.d.ts +1 -1
  95. package/lib/display/app-bar/app-bar.component.d.ts +1 -1
  96. package/lib/display/avatar/avatar.component.d.ts +1 -1
  97. package/lib/display/confirm/confirm.component.d.ts +1 -1
  98. package/lib/display/dialog/dialog-group/dialog-group.component.d.ts +1 -1
  99. package/lib/display/dialog/dialog.component.d.ts +1 -1
  100. package/lib/display/hierarchy/hierarchy-tree/hierarchy-tree.component.d.ts +1 -1
  101. package/lib/display/item-display/item-display.component.d.ts +1 -1
  102. package/lib/display/json-display/json-display.component.d.ts +1 -1
  103. package/lib/display/resizable/resizable.component.d.ts +1 -1
  104. package/lib/display/spinner/spinner.component.d.ts +1 -1
  105. package/lib/display/splash/splash.component.d.ts +1 -1
  106. package/lib/display/table/resizable-column.component.d.ts +1 -1
  107. package/lib/display/table/resizable-table.directive.d.ts +1 -1
  108. package/lib/display/table/searchable-table.component.d.ts +1 -1
  109. package/lib/display/table/table-detail-row.component.d.ts +1 -1
  110. package/lib/display/table/table-locked-column.component.d.ts +1 -1
  111. package/lib/display/table/table-master-header-row.component.d.ts +1 -1
  112. package/lib/display/table/table-master-row.component.d.ts +1 -1
  113. package/lib/display/table/table-pagination.component.d.ts +1 -1
  114. package/lib/display/table/table-selectable-row.component.d.ts +1 -1
  115. package/lib/display/table/table.component.d.ts +1 -1
  116. package/lib/display/tags/tags.component.d.ts +1 -1
  117. package/lib/display/toast/toast/toast.component.d.ts +1 -1
  118. package/lib/display/toast/toaster/toaster.component.d.ts +1 -1
  119. package/lib/display/tooltip/tooltip.component.d.ts +1 -1
  120. package/lib/display/tooltip-directive/tooltip.directive.d.ts +1 -1
  121. package/lib/display/tour/tour.component.d.ts +1 -1
  122. package/lib/display/tree/tree.component.d.ts +1 -1
  123. package/lib/display/view-overlay/view-overlay.component.d.ts +1 -1
  124. package/lib/shared/directives/click-area-for/click-area-for.directive.d.ts +1 -1
  125. package/lib/shared/directives/if-viewport-width/if-viewport-width.directive.d.ts +1 -1
  126. package/lib/shared/directives/popup/popup-container.directive.d.ts +1 -1
  127. package/lib/shared/display/pipes/date-display.pipe.d.ts +1 -1
  128. package/lib/shared/display/pipes/highlight-text.pipe.d.ts +1 -1
  129. package/lib/shared/display/pipes/relative-date.pipe.d.ts +1 -1
  130. package/lib/shared/display/pipes/row-count.pipe.d.ts +1 -1
  131. package/lib/shared/display/pipes/time-display.pipe.d.ts +1 -1
  132. package/lib/shared/page/page-title/page-title.component.d.ts +1 -1
  133. package/lib/shared/page/page-view/page-view.component.d.ts +1 -1
  134. package/lib/shared/testing/public-mocks.spec.d.ts +1 -1
  135. package/lib/shared/wizard/wizard-buttons/wizard-buttons.component.d.ts +1 -1
  136. package/lib/shared/wizard/wizard-progress/wizard-progress.component.d.ts +1 -1
  137. package/package.json +1 -1
@@ -1,11 +1,12 @@
1
1
  import { Component, HostBinding, Input } from '@angular/core';
2
+ import { TranslateModule } from '@ngx-translate/core';
2
3
  import { Subject } from 'rxjs';
3
4
  import { takeUntil } from 'rxjs/operators';
4
5
  import { forEachFormControl } from '../form-group/form-group.component';
6
+ import { NgIf } from '@angular/common';
5
7
  import * as i0 from "@angular/core";
6
8
  import * as i1 from "../../core/validation-message.service";
7
9
  import * as i2 from "@ngx-translate/core";
8
- import * as i3 from "@angular/common";
9
10
  export class FormControlLabelComponent {
10
11
  constructor(validationMessageService, translateService) {
11
12
  this.validationMessageService = validationMessageService;
@@ -113,10 +114,10 @@ export class FormControlLabelComponent {
113
114
  }
114
115
  }
115
116
  FormControlLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormControlLabelComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
116
- FormControlLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormControlLabelComponent, selector: "ec-form-control-label", inputs: { id: "id", label: "label", control: "control", labelPosition: "labelPosition", overrideValidationError: "overrideValidationError", hideValidationMessage: "hideValidationMessage" }, host: { properties: { "attr.id": "this.attrId" } }, ngImport: i0, template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"control?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && control?.touched && control?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
117
+ FormControlLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormControlLabelComponent, isStandalone: true, selector: "ec-form-control-label", inputs: { id: "id", label: "label", control: "control", labelPosition: "labelPosition", overrideValidationError: "overrideValidationError", hideValidationMessage: "hideValidationMessage" }, host: { properties: { "attr.id": "this.attrId" } }, ngImport: i0, template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"control?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && control?.touched && control?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
117
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormControlLabelComponent, decorators: [{
118
119
  type: Component,
119
- args: [{ selector: 'ec-form-control-label', template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"control?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && control?.touched && control?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"] }]
120
+ args: [{ selector: 'ec-form-control-label', standalone: true, imports: [NgIf, TranslateModule], template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"control?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && control?.touched && control?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"] }]
120
121
  }], ctorParameters: function () { return [{ type: i1.ValidationMessageService }, { type: i2.TranslateService }]; }, propDecorators: { id: [{
121
122
  type: Input
122
123
  }], attrId: [{
@@ -133,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
133
134
  }], hideValidationMessage: [{
134
135
  type: Input
135
136
  }] } });
136
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUd0RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7QUFPeEUsTUFBTSxPQUFPLHlCQUF5QjtJQW9EcEMsWUFDWSx3QkFBa0QsRUFDcEQsZ0JBQWtDO1FBRGhDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQTFDNUM7O1dBRUc7UUFDYSxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBV25DOzthQUVLO1FBQ1csa0JBQWEsR0FBMEIsS0FBSyxDQUFDO1FBRzdEOztXQUVHO1FBQ2EsNEJBQXVCLEdBQVksRUFBRSxDQUFDO1FBRXREO1dBQ0c7UUFDYSwwQkFBcUIsR0FBWSxLQUFLLENBQUM7UUFDdkQ7Ozs7O1dBS0c7UUFDSSxxQkFBZ0IsR0FBVyxFQUFFLENBQUM7UUFFOUIsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBRW5DLHVCQUFrQixHQUFpQixJQUFJLE9BQU8sRUFBTyxDQUFDO0lB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QkFBeUI7MEdBQXpCLHlCQUF5QiwrU0NkdEMsd1lBT007MkZET08seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNFLHVCQUF1Qjs4SUFTakIsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsT0FBTztzQkFBdEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xMYWJlbFBvc2l0aW9uIH0gZnJvbSAnLi4vZm9ybS1jb250cm9sLWJhc2UnO1xyXG5pbXBvcnQgeyBmb3JFYWNoRm9ybUNvbnRyb2wgfSBmcm9tICcuLi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtZm9ybS1jb250cm9sLWxhYmVsJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWNvbnRyb2wtbGFiZWwuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybUNvbnRyb2xMYWJlbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIElkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIGlkIHRvIGhvc3QgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHB1YmxpYyBhdHRySWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbGFiZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBVSS1vcmllbnRlZCBmb3JtIG1vZGVsIHRoYXQgcmV0YWlucyB0aGUgc3RhdGVzIGFuZCB2YWx1ZXMgb2YgdGhlIEhUTUwgY29udHJvbHMgb24gc2NyZWVuLlxyXG4gICAqIENhbiBiZSBhIHtAbGluayBGb3JtQ29udHJvbH0sIGEge0BsaW5rIEZvcm1Hcm91cH0gb3IgYSB7QGxpbmsgRm9ybUFycmF5fVxyXG4gICAqXHJcbiAgICogQHR5cGUge0Fic3RyYWN0Q29udHJvbH1cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2w7XHJcblxyXG4gIC8qKlxyXG4gICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBmb3JtIGNvbnRyb2wgbGFiZWwgKHRvcHxib3R0b218bGVmdClcclxuICAgICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgc3RyaW5nIHRvIHNob3cgaWYgYW55IG9mIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIGhhcyBhbiBlcnJvci4gSWYgZmFsc3ksIG9uZSBvZiB0aGVcclxuICAgKiBlcnJvcnMgZnJvbSB0aGUgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIHVzZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG92ZXJyaWRlVmFsaWRhdGlvbkVycm9yPzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgZmxhZyB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlVmFsaWRhdGlvbk1lc3NhZ2U/OmJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbGwgY3VycmVudCB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBhbGxDb250cm9sc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBzdWJzY3JpYmUgdG8gc3RhdHVzQ2hhbmdlcyBPYnNlcnZhYmxlIHRvIHRha2UgYW55IGVycm9ycyBhbmQgdHJhbnNsYXRlIHRoZW1cclxuICAgIGlmICh0aGlzLmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5jb250cm9sLnN0YXR1c0NoYW5nZXNcclxuICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5jb250cm9sISkpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAvLyAocmUpc2V0IHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5jb250cm9sKSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaWQpIHtcclxuICAgICAgdGhpcy5hdHRySWQgPSB0aGlzLmlkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQW5ndWxhciBvbkRlc3Ryb3kgbGlmZWN5bGUgaG9vay5cclxuICAgKiBVbnN1YnNjcmliZSBmcm9tIGFueSBvYnNlcnZhYmxlc1xyXG4gICAqXHJcbiAgICogQHNlZSBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvbGlmZWN5Y2xlLWhvb2tzXHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG5cclxuICAgIGxldCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0gbnVsbDtcclxuICAgIGxldCBhbGxUb3VjaGVkOiBib29sZWFuID0gdHJ1ZTtcclxuICAgIGxldCBjb250cm9sRm91bmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICBmb3JFYWNoRm9ybUNvbnRyb2woY29udHJvbCwgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBlcnJvcnMgPSB0aGlzLmFzc2lnbkVycm9ycyhjb250cm9sLCBlcnJvcnMpO1xyXG4gICAgICBpZiAoY29udHJvbC51bnRvdWNoZWQpIHtcclxuICAgICAgICBhbGxUb3VjaGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbEZvdW5kID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChjb250cm9sLmVycm9ycykge1xyXG4gICAgICBlcnJvcnMgPSBPYmplY3QuYXNzaWduKGVycm9ycyB8fCB7fSwgY29udHJvbC5lcnJvcnMpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChhbGxUb3VjaGVkICYmIGNvbnRyb2xGb3VuZCkge1xyXG4gICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3NpZ25FcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBjb250cm9sLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yc1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBjb250cm9scyB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZVxyXG4gICAqIHRvIHRha2UgYW55IGVycm9zIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBbZGF0YV1cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKSB7XHJcbiAgICBpZiAoZXJyb3JzKSB7XHJcbiAgICAgIGlmKHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3Ipe1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3IpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLmdldEVycm9yTWVzc2FnZXMoZXJyb3JzKTtcclxuICAgICAgICBpZiAobWVzc2FnZXMpIHtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IG1lc3NhZ2VzLmpvaW4oJzsgJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSAnJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRyb2wgY29udHJvbC1sYWJlbC17e2xhYmVsUG9zaXRpb259fVwiIFtjbGFzcy5lYy11bnRvdWNoZWRdPVwiY29udHJvbD8udW50b3VjaGVkXCI+XHJcbiAgPGxhYmVsICpuZ0lmPVwibGFiZWxcIiBuZ1ByZXNlcnZlV2hpdGVzcGFjZXM+XHJcblxyXG4gICAgPHNwYW4gaWQ9XCJ7e2lkfX1fbGFiZWxcIj57e2xhYmVsIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcblxyXG4gICAgPHNwYW4gKm5nSWY9XCIhaGlkZVZhbGlkYXRpb25NZXNzYWdlICYmIHZhbGlkYXRpb25FcnJvcnMgJiYgY29udHJvbD8udG91Y2hlZCAmJiBjb250cm9sPy5pbnZhbGlkXCI+e3t2YWxpZGF0aW9uRXJyb3JzIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuPC9kaXY+Il19
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWNvbnRyb2wtbGFiZWwvZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUV0RSxPQUFPLEVBQW9CLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQVN2QyxNQUFNLE9BQU8seUJBQXlCO0lBb0RwQyxZQUNZLHdCQUFrRCxFQUNwRCxnQkFBa0M7UUFEaEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNwRCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBMUM1Qzs7V0FFRztRQUNhLFVBQUssR0FBVyxFQUFFLENBQUM7UUFXbkM7O2FBRUs7UUFDVyxrQkFBYSxHQUEwQixLQUFLLENBQUM7UUFHN0Q7O1dBRUc7UUFDYSw0QkFBdUIsR0FBWSxFQUFFLENBQUM7UUFFdEQ7V0FDRztRQUNhLDBCQUFxQixHQUFZLEtBQUssQ0FBQztRQUN2RDs7Ozs7V0FLRztRQUNJLHFCQUFn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QztpQkFDN0M7YUFDRjtTQUNGO2FBQU07WUFDTCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7c0hBOUlVLHlCQUF5QjswR0FBekIseUJBQXlCLG1VQ2pCdEMsd1lBT00sbW1IRFFRLElBQUksNEZBQUUsZUFBZTsyRkFFdEIseUJBQXlCO2tCQVByQyxTQUFTOytCQUNJLHVCQUF1QixjQUdyQixJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZUFBZSxDQUFDOzhJQU9sQixFQUFFO3NCQUFqQixLQUFLO2dCQUt5QixNQUFNO3NCQUFwQyxXQUFXO3VCQUFDLFNBQVM7Z0JBS04sS0FBSztzQkFBcEIsS0FBSztnQkFTVSxPQUFPO3NCQUF0QixLQUFLO2dCQUtVLGFBQWE7c0JBQTVCLEtBQUs7Z0JBTVUsdUJBQXVCO3NCQUF0QyxLQUFLO2dCQUlVLHFCQUFxQjtzQkFBcEMsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvdmFsaWRhdGlvbi1tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sTGFiZWxQb3NpdGlvbiB9IGZyb20gJy4uL2Zvcm0tY29udHJvbC1iYXNlJztcclxuaW1wb3J0IHsgZm9yRWFjaEZvcm1Db250cm9sIH0gZnJvbSAnLi4vZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2VjLWZvcm0tY29udHJvbC1sYWJlbCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1jb250cm9sLWxhYmVsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2Zvcm0tY29udHJvbC1sYWJlbC5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtOZ0lmLCBUcmFuc2xhdGVNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtQ29udHJvbExhYmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgLyoqXHJcbiAgICogSWRcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgaWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIEJpbmQgaWQgdG8gaG9zdCBlbGVtZW50XHJcbiAgICovXHJcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmlkJykgcHVibGljIGF0dHJJZD86IHN0cmluZztcclxuXHJcbiAgLyoqXHJcbiAgICogVGhlIGZvcm0gY29udHJvbCBsYWJlbFxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gJyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFVJLW9yaWVudGVkIGZvcm0gbW9kZWwgdGhhdCByZXRhaW5zIHRoZSBzdGF0ZXMgYW5kIHZhbHVlcyBvZiB0aGUgSFRNTCBjb250cm9scyBvbiBzY3JlZW4uXHJcbiAgICogQ2FuIGJlIGEge0BsaW5rIEZvcm1Db250cm9sfSwgYSB7QGxpbmsgRm9ybUdyb3VwfSBvciBhIHtAbGluayBGb3JtQXJyYXl9XHJcbiAgICpcclxuICAgKiBAdHlwZSB7QWJzdHJhY3RDb250cm9sfVxyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgY29udHJvbD86IEFic3RyYWN0Q29udHJvbDtcclxuXHJcbiAgLyoqXHJcbiAgICAgKiBUaGUgcG9zaXRpb24gb2YgdGhlIGZvcm0gY29udHJvbCBsYWJlbCAodG9wfGJvdHRvbXxsZWZ0KVxyXG4gICAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGxhYmVsUG9zaXRpb24/OiBDb250cm9sTGFiZWxQb3NpdGlvbiA9IFwidG9wXCI7XHJcblxyXG5cclxuICAvKipBbiBvcHRpb25hbCBzdHJpbmcgdG8gc2hvdyBpZiBhbnkgb2YgdGhlIHVuZGVybHlpbmcgY29udHJvbHMgaGFzIGFuIGVycm9yLiBJZiBmYWxzeSwgb25lIG9mIHRoZVxyXG4gICAqIGVycm9ycyBmcm9tIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIHdpbGwgYmUgdXNlZC5cclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgb3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3I/OiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICAvKipBbiBvcHRpb25hbCBmbGFnIHRvIGhpZGUgdGhlIHZhbGlkYXRpb24gbWVzc2FnZXMuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGhpZGVWYWxpZGF0aW9uTWVzc2FnZT86Ym9vbGVhbiA9IGZhbHNlO1xyXG4gIC8qKlxyXG4gICAqIEFsbCBjdXJyZW50IHZhbGlkYXRpb24gZXJyb3JzXHJcbiAgICpcclxuICAgKiBAdHlwZSB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwdWJsaWMgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgcHVibGljIGFsbENvbnRyb2xzVG91Y2hlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZDogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3Q8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByb3RlY3RlZCB2YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2U6IFZhbGlkYXRpb25NZXNzYWdlU2VydmljZSxcclxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIHB1YmxpYyBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIC8vIHN1YnNjcmliZSB0byBzdGF0dXNDaGFuZ2VzIE9ic2VydmFibGUgdG8gdGFrZSBhbnkgZXJyb3JzIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAgaWYgKHRoaXMuY29udHJvbCkge1xyXG4gICAgICB0aGlzLmNvbnRyb2wuc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpXHJcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmNvbnRyb2whKSlcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIC8vIChyZSlzZXQgdmFsaWRhdGlvbiBtZXNzYWdlc1xyXG4gICAgICB0aGlzLnRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyh0aGlzLmdldEVycm9ycyh0aGlzLmNvbnRyb2wpKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pZCkge1xyXG4gICAgICB0aGlzLmF0dHJJZCA9IHRoaXMuaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uRGVzdHJveSBsaWZlY3lsZSBob29rLlxyXG4gICAqIFVuc3Vic2NyaWJlIGZyb20gYW55IG9ic2VydmFibGVzXHJcbiAgICpcclxuICAgKiBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3NcclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JzKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XHJcblxyXG4gICAgbGV0IGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPSBudWxsO1xyXG4gICAgbGV0IGFsbFRvdWNoZWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG4gICAgbGV0IGNvbnRyb2xGb3VuZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGZvckVhY2hGb3JtQ29udHJvbChjb250cm9sLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICAgIGVycm9ycyA9IHRoaXMuYXNzaWduRXJyb3JzKGNvbnRyb2wsIGVycm9ycyk7XHJcbiAgICAgIGlmIChjb250cm9sLnVudG91Y2hlZCkge1xyXG4gICAgICAgIGFsbFRvdWNoZWQgPSBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICBjb250cm9sRm91bmQgPSB0cnVlO1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBjb250cm9sLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGFsbFRvdWNoZWQgJiYgY29udHJvbEZvdW5kKSB7XHJcbiAgICAgIGNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBlcnJvcnM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzc2lnbkVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICBpZiAoY29udHJvbC5lcnJvcnMpIHtcclxuICAgICAgZXJyb3JzID0gT2JqZWN0LmFzc2lnbihlcnJvcnMgfHwge30sIGNvbnRyb2wuZXJyb3JzKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW5jdGlvbiB0aGF0IHN1YnNjcmliZXMgdG8gdGhlIGNvbnRyb2xzIHZhbHVlQ2hhbmdlcyBPYnNlcnZhYmxlXHJcbiAgICogdG8gdGFrZSBhbnkgZXJyb3MgYW5kIHRyYW5zbGF0ZSB0aGVtXHJcbiAgICpcclxuICAgKiBAcGFyYW0geyp9IFtkYXRhXVxyXG4gICAqIEByZXR1cm5zXHJcbiAgICogQG1lbWJlcm9mIEZvcm1Db250cm9sQmFzZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgdHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKGVycm9yczogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwpIHtcclxuICAgIGlmIChlcnJvcnMpIHtcclxuICAgICAgaWYodGhpcy5vdmVycmlkZVZhbGlkYXRpb25FcnJvcil7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQodGhpcy5vdmVycmlkZVZhbGlkYXRpb25FcnJvcik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgbGV0IG1lc3NhZ2VzID0gYXdhaXQgdGhpcy52YWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UuZ2V0RXJyb3JNZXNzYWdlcyhlcnJvcnMpO1xyXG4gICAgICAgIGlmIChtZXNzYWdlcykge1xyXG4gICAgICAgICAgdGhpcy52YWxpZGF0aW9uRXJyb3JzID0gbWVzc2FnZXMuam9pbignOyAnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9ICcnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY29udHJvbCBjb250cm9sLWxhYmVsLXt7bGFiZWxQb3NpdGlvbn19XCIgW2NsYXNzLmVjLXVudG91Y2hlZF09XCJjb250cm9sPy51bnRvdWNoZWRcIj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIG5nUHJlc2VydmVXaGl0ZXNwYWNlcz5cclxuXHJcbiAgICA8c3BhbiBpZD1cInt7aWR9fV9sYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmFsaWRhdGlvbk1lc3NhZ2UgJiYgdmFsaWRhdGlvbkVycm9ycyAmJiBjb250cm9sPy50b3VjaGVkICYmIGNvbnRyb2w/LmludmFsaWRcIj57e3ZhbGlkYXRpb25FcnJvcnMgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuICA8L2xhYmVsPlxyXG48L2Rpdj4iXX0=
@@ -1,12 +1,13 @@
1
1
  import { Component, Input, HostBinding } from "@angular/core";
2
2
  import { UntypedFormGroup, UntypedFormArray, UntypedFormControl } from "@angular/forms";
3
+ import { TranslateModule } from "@ngx-translate/core";
3
4
  import { cloneDeep } from "lodash";
4
5
  import { Subject } from "rxjs";
5
6
  import { takeUntil } from "rxjs/operators";
7
+ import { NgIf } from "@angular/common";
6
8
  import * as i0 from "@angular/core";
7
9
  import * as i1 from "../../core/validation-message.service";
8
10
  import * as i2 from "@ngx-translate/core";
9
- import * as i3 from "@angular/common";
10
11
  /** Function to iterate over form controls and
11
12
  * ensure they contain unique values. If any are duplicated all offending
12
13
  * form controls will be marked as invalid
@@ -229,10 +230,10 @@ export class FormGroupComponent {
229
230
  }
230
231
  }
231
232
  FormGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGroupComponent, deps: [{ token: i1.ValidationMessageService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
232
- FormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormGroupComponent, selector: "ec-form-group", inputs: { id: "id", label: "label", formGroup: "formGroup", labelPosition: "labelPosition", overrideValidationError: "overrideValidationError", hideValidationMessage: "hideValidationMessage" }, host: { properties: { "attr.id": "this.attrId" } }, ngImport: i0, template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"formGroup?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
233
+ FormGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: FormGroupComponent, isStandalone: true, selector: "ec-form-group", inputs: { id: "id", label: "label", formGroup: "formGroup", labelPosition: "labelPosition", overrideValidationError: "overrideValidationError", hideValidationMessage: "hideValidationMessage" }, host: { properties: { "attr.id": "this.attrId" } }, ngImport: i0, template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"formGroup?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
233
234
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: FormGroupComponent, decorators: [{
234
235
  type: Component,
235
- args: [{ selector: 'ec-form-group', template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"formGroup?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"] }]
236
+ args: [{ selector: 'ec-form-group', standalone: true, imports: [NgIf, TranslateModule], template: "<div class=\"control control-label-{{labelPosition}}\" [class.ec-untouched]=\"formGroup?.untouched\">\r\n <label *ngIf=\"label\" ngPreserveWhitespaces>\r\n\r\n <span id=\"{{id}}_label\">{{label | translate}}</span>\r\n\r\n <span *ngIf=\"!hideValidationMessage && validationErrors && formGroup?.touched && formGroup?.invalid\">{{validationErrors | translate}}</span>\r\n </label>\r\n <ng-content></ng-content>\r\n</div>", styles: [":host{color:var(--ec-form-control-color);font-size:var(--ec-form-control-font-size);display:block;margin-bottom:1rem;width:100%}:host :host-context(.form-condensed){margin-bottom:.5rem}:host .control{width:100%;display:flex;flex-direction:column}:host .control.control-label-bottom{flex-direction:column-reverse}:host .control.control-label-left{flex-direction:row}:host .control.control-label-left label{margin-right:.25rem}:host .control.control-label-right{flex-direction:row-reverse}:host .control.control-label-right label{margin-left:.25rem}:host .control.control-label-left,:host .control.control-label-right{align-items:center}:host .control.control-label-left label,:host .control.control-label-right label{flex:1 1;margin-top:0;margin-bottom:0}:host .control.control-label-left .control-input,:host .control.control-label-right .control-input{flex:2 2}:host .control.is-readonly input,:host .control.is-readonly select,:host .control.is-readonly textarea{border-color:var(--ec-form-control-border-color-readonly);background-color:var(--ec-form-control-background-color-readonly);background-clip:border-box;background-image:none;color:var(--ec-form-control-color-readonly);opacity:1;-webkit-user-select:none;user-select:none;pointer-events:none;overflow:hidden;white-space:nowrap}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid{background-color:var(--ec-form-control-background-color-invalid);border-color:var(--ec-form-control-border-color-invalid);background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem;background-image:none}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid:focus,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid:focus{border-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-invalid,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-invalid{display:inline-flex;position:absolute;left:.5rem;top:.5rem;z-index:1}:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-invalid~.icon-required,:host .control.invalid .textbox-group-input ::ng-deep .control input.ng-valid~.icon-required{display:none}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button{background-color:var(--ec-form-control-background-color-invalid)}:host .control.invalid:not(.open) .textbox-group-btn-right ::ng-deep button:not(:focus){border-color:var(--ec-form-control-border-color-invalid)}:host .textbox-group{display:flex;position:relative}:host textarea:focus,:host input:focus,:host select:focus{outline:none}label{color:var(--ec-form-control-label-color, var(--ec-color-secondary-dark));display:block;font-size:var(--ec-font-size-label);line-height:1;margin:calc(var(--ec-font-size-label) / 2) 0}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched{background-image:none;padding-left:.5rem}.control.ec-untouched ::ng-deep input.ng-invalid.ng-touched:not(.is-empty)~.units-left{left:0}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty{background-image:none;background-repeat:no-repeat;background-position:.5rem center;background-size:1rem,1rem;padding-left:1.75rem}.control.ec-untouched ::ng-deep input:required:not(:disabled).is-empty:focus{border-color:var(--ec-form-control-border-color-focus);box-shadow:var(--ec-form-control-box-shadow-focus);position:relative;z-index:1}.control-label-left{display:flex}\n"] }]
236
237
  }], ctorParameters: function () { return [{ type: i1.ValidationMessageService }, { type: i2.TranslateService }]; }, propDecorators: { id: [{
237
238
  type: Input
238
239
  }], attrId: [{
@@ -249,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
249
250
  }], hideValidationMessage: [{
250
251
  type: Input
251
252
  }] } });
252
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFLM0M7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsQ0FBQyxFQUF1QyxFQUFFLGdCQUErQixPQUFPLEVBQUUsV0FBb0IsRUFBUSxFQUFFO0lBQzlKLElBQUksaUJBQWlCLEdBQTRCLEVBQUUsQ0FBQztJQUVwRCxtRUFBbUU7SUFDbkUsc0NBQXNDO0lBQ3RDLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDLE9BQXdCLEVBQUUsRUFBRTtRQUNsRCxJQUFJLFlBQVksR0FBUSxlQUFlLENBQUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUU3RSxJQUFJLFlBQVksS0FBSyxJQUFJLElBQUksWUFBWSxLQUFLLEVBQUUsRUFBRTtZQUNoRCxJQUFJLE9BQU8sWUFBWSxLQUFLLFFBQVEs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Z0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2lCQUM3QzthQUNGO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDOzsrR0E5SVUsa0JBQWtCO21HQUFsQixrQkFBa0IsMlNDcEkvQiw2YUFRTTsyRkQ0SE8sa0JBQWtCO2tCQUw5QixTQUFTOytCQUNFLGVBQWU7OElBU1QsRUFBRTtzQkFBakIsS0FBSztnQkFLeUIsTUFBTTtzQkFBcEMsV0FBVzt1QkFBQyxTQUFTO2dCQUtOLEtBQUs7c0JBQXBCLEtBQUs7Z0JBU1UsU0FBUztzQkFBeEIsS0FBSztnQkFLVSxhQUFhO3NCQUE1QixLQUFLO2dCQU1VLHVCQUF1QjtzQkFBdEMsS0FBSztnQkFJVSxxQkFBcUI7c0JBQXBDLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIEhvc3RCaW5kaW5nIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVW50eXBlZEZvcm1Hcm91cCwgVW50eXBlZEZvcm1BcnJheSwgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sTGFiZWxQb3NpdGlvbiB9IGZyb20gXCIuLi9mb3JtLWNvbnRyb2wtYmFzZVwiO1xyXG5cclxuXHJcbi8qKiBGdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgZm9ybSBjb250cm9scyBhbmRcclxuICogIGVuc3VyZSB0aGV5IGNvbnRhaW4gdW5pcXVlIHZhbHVlcy4gIElmIGFueSBhcmUgZHVwbGljYXRlZCBhbGwgb2ZmZW5kaW5nXHJcbiAqICBmb3JtIGNvbnRyb2xzIHdpbGwgYmUgbWFya2VkIGFzIGludmFsaWRcclxuICpcclxuICogQHBhcmFtIHZhbHVlUHJvcGVydHkgLSB0aGUgc3ViLXByb3BlcnR5IG9mIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgZWFjaCBmb3JtIGNvbnRyb2xcclxuICogICAgICAgIGl0IGlzIGRlcmVmZXJlbmNlZCBhcyBmb3JtR3JvdXAuY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XS5cclxuICogICAgICAgIGRlZmF1bHRzIHRvIFwidmFsdWVcIiwgd2hpY2ggbWF0Y2hlcyB0aGUgZm9ybSBjb250cm9scyB1c2VkIHRvIGJhY2sgY29tYm9ib3hlc1xyXG4gKiAgICAgICAgaWYgZXhwbGljaXRseSBudWxsLCB0aGlzIGZ1bmN0aW9uIGFzc3VtZXMgdmFsdWUgaXMgbm90IGEgY29tcGxleCBvYmplY3QgYW5kIGp1c3QgZXh0cmFjdHNcclxuICogICAgICAgIGZvcm1Hcm91cC5jb250cm9sLnZhbHVlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVGb3JtR3JvdXBWYWx1ZXNBcmVVbmlxdWUgPSAoZmc6IFVudHlwZWRGb3JtR3JvdXAgfCBVbnR5cGVkRm9ybUFycmF5LCB2YWx1ZVByb3BlcnR5OiBzdHJpbmcgfCBudWxsID0gXCJ2YWx1ZVwiLCBzdWJQcm9wZXJ0eT86IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gIGxldCBmb3JtQ29udHJvbFZhbHVlczoge1trZXk6IHN0cmluZ106IG51bWJlcn0gPSB7fTtcclxuXHJcbiAgLy8gRmlyc3QgZ2V0IGFsbCBvZiB0aGUgdmFsdWVzIGFuZCBpZiB0aGV5IGhhdmUgYmVlbiBmb3VuZCBhbHJlYWR5LFxyXG4gIC8vIGluY3JlbWVudCB0aGUgbnVtYmVyIG9mIHRpbWVzIGZvdW5kXHJcbiAgZm9yRWFjaEZvcm1Db250cm9sKGZnLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICBsZXQgY29udHJvbFZhbHVlOiBhbnkgPSBnZXRDb250cm9sVmFsdWUoY29udHJvbCwgdmFsdWVQcm9wZXJ0eSwgc3ViUHJvcGVydHkpO1xyXG5cclxuICAgIGlmIChjb250cm9sVmFsdWUgIT09IG51bGwgJiYgY29udHJvbFZhbHVlICE9PSAnJykge1xyXG4gICAgICBpZiAodHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb250cm9sVmFsdWUgPSBjb250cm9sVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZXMuaGFzT3duUHJvcGVydHkoY29udHJvbFZhbHVlKSkge1xyXG4gICAgICAgIGZvcm1Db250cm9sVmFsdWVzW2NvbnRyb2xWYWx1ZV0gPSBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdICsgMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdID0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvLyBOb3cgZ28gYmFjayBvdmVyIHRoZSBjb250cm9scyBhbmQgaWYgdGhlaXIgdmFsdWUgd2FzIGZvdW5kIG1vcmUgdGhhbiBvbmNlIGZsYWcgdGhlbSBhcyBpbnZhbGlkXHJcbiAgZm9yRWFjaEZvcm1Db250cm9sKGZnLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICBsZXQgY29udHJvbFZhbHVlOiBhbnkgPSBnZXRDb250cm9sVmFsdWUoY29udHJvbCwgdmFsdWVQcm9wZXJ0eSwgc3ViUHJvcGVydHkpO1xyXG5cclxuICAgIC8vIElmIHRoZSBjb250cm9sIHZhbHVlIGlzIG51bGwgd2Ugd2lsbCBsZXQgYW55IHJlcXVpcmVkIHZhbGlkYXRvcnMgaGFuZGxlIHRoZW1cclxuICAgIGlmIChjb250cm9sVmFsdWUgIT09IG51bGwgJiYgY29udHJvbFZhbHVlICE9PSAnJykge1xyXG4gICAgICBpZiAodHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb250cm9sVmFsdWUgPSBjb250cm9sVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA+IDEpIHtcclxuICAgICAgICBjb250cm9sLnNldEVycm9ycyhPYmplY3QuYXNzaWduKHsgbm90VW5pcXVlOiB0cnVlIH0sIGNvbnRyb2wuZXJyb3JzKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gR2V0IGEgY29weSBvZiB0aGUgZXhpc3RpbmcgZm9ybSBjb250cm9sIGVycm9ycywgaWYgYW55XHJcbiAgICAgICAgbGV0IGVycm9ycyA9IGNsb25lRGVlcChjb250cm9sLmVycm9ycyk7XHJcblxyXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBlcnJvcnMgYW5kIHByZXZpb3VzbHkgaGFkIHRoZSBub3RVbmlxdWUgZXJyb3Igd2Ugd2FudCB0byByZW1vdmVcclxuICAgICAgICAvLyB0aGF0IHByb3BlcnR5XHJcbiAgICAgICAgaWYgKGVycm9ycyAmJiBlcnJvcnMuaGFzT3duUHJvcGVydHkoXCJub3RVbmlxdWVcIikpIHtcclxuICAgICAgICAgIGRlbGV0ZSBlcnJvcnMubm90VW5pcXVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhhdCB3YXMgdGhlIG9ubHkgZXJyb3IgaW4gdGhlIG9iamVjdCwgc2V0IHRvIG51bGwgc28gdmFsaWRhdGlvbiBwYXNzZXNcclxuICAgICAgICBpZiAoZXJyb3JzICYmIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBlcnJvcnMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBmb3IgY29udHJvbHMgYW5kIGludm9rZSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGV5IGFyZSBmb3VuZC5cclxuICogUmVjdXJzaXZlbHkgY2FsbHMgaXRzZWxmIHdoZW4gaXQgZW5jb3VudGVycyBzdWIgZm9ybSBncm91cHMgYW5kIGl0ZXJhdGVzIG92ZXIgZm9ybSBhcnJheXMuXHJcbiAqIEBwYXJhbSBjXHJcbiAqIEBwYXJhbSBjYWxsYmFja1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGZvckVhY2hGb3JtQ29udHJvbCA9IChjOiBBYnN0cmFjdENvbnRyb2wsIGNhbGxiYWNrOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB2b2lkKTogdm9pZCA9PiB7XHJcbiAgbGV0IGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSA9IFtdO1xyXG5cclxuICAvLyBOb3JtYWxpemUgdG8gYW4gYXJyYXkgZm9yIGVhc2Ugb2YgcHJvY2Vzc2luZ1xyXG4gIGlmIChjIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XHJcbiAgICBjb250cm9scy5wdXNoKGMpO1xyXG4gIH0gZWxzZSBpZiAoYyBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgIGZvciAodmFyIGtleSBpbiBjLmNvbnRyb2xzKSB7XHJcbiAgICAgIGNvbnRyb2xzLnB1c2goYy5jb250cm9sc1trZXldKTtcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICBjb250cm9scyA9IGMuY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBjb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaChjdHJsID0+IHtcclxuICAgICAgICBpZiAoY3RybCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXAgfHwgY3RybCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcclxuICAgICAgICAgIGZvckVhY2hGb3JtQ29udHJvbChjdHJsLCBjYWxsYmFjayk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNhbGxiYWNrKGN0cmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICAgIGZvckVhY2hGb3JtQ29udHJvbChjb250cm9sLGNhbGxiYWNrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhbGxiYWNrKGNvbnRyb2wpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdmFsdWUgaWYgaXQgaXMgZW5hYmxlZCBhbmQgc2V0XHJcbiAqIEBwYXJhbSBjb250cm9sXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q29udHJvbFZhbHVlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsdWVQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9IFwidmFsdWVcIiwgc3ViUHJvcGVydHk/OiBzdHJpbmcpOiBhbnkgfCBudWxsID0+IHtcclxuICBpZiAoY29udHJvbC5lbmFibGVkICYmIChjb250cm9sLnZhbHVlICE9PSBudWxsICYmIGNvbnRyb2wudmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgIGlmICh2YWx1ZVByb3BlcnR5ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBjb250cm9sLnZhbHVlO1xyXG4gICAgfSBlbHNlIGlmIChzdWJQcm9wZXJ0eSkge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XVtzdWJQcm9wZXJ0eV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2VjLWZvcm0tZ3JvdXAnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIElkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIGlkIHRvIGhvc3QgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHB1YmxpYyBhdHRySWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbGFiZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBVSS1vcmllbnRlZCBmb3JtIG1vZGVsIHRoYXQgcmV0YWlucyB0aGUgc3RhdGVzIGFuZCB2YWx1ZXMgb2YgdGhlIEhUTUwgY29udHJvbHMgb24gc2NyZWVuLlxyXG4gICAqIENhbiBiZSBhIHtAbGluayBGb3JtQ29udHJvbH0gb3IgYSB7QGxpbmsgRm9ybUdyb3VwfVxyXG4gICAqXHJcbiAgICogQHR5cGUge0Zvcm1Hcm91cH1cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cD86IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIC8qKlxyXG4gICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBmb3JtIGNvbnRyb2wgbGFiZWwgKHRvcHxib3R0b218bGVmdClcclxuICAgICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgc3RyaW5nIHRvIHNob3cgaWYgYW55IG9mIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIGhhcyBhbiBlcnJvci4gSWYgZmFsc3ksIG9uZSBvZiB0aGVcclxuICAgKiBlcnJvcnMgZnJvbSB0aGUgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIHVzZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG92ZXJyaWRlVmFsaWRhdGlvbkVycm9yPzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgZmxhZyB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlVmFsaWRhdGlvbk1lc3NhZ2U/OmJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbGwgY3VycmVudCB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBhbGxDb250cm9sc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBzdWJzY3JpYmUgdG8gc3RhdHVzQ2hhbmdlcyBPYnNlcnZhYmxlIHRvIHRha2UgYW55IGVycm9ycyBhbmQgdHJhbnNsYXRlIHRoZW1cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKHRoaXMuZ2V0RXJyb3JzKHRoaXMuZm9ybUdyb3VwISkpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAvLyAocmUpc2V0IHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5mb3JtR3JvdXApKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pZCkge1xyXG4gICAgICB0aGlzLmF0dHJJZCA9IHRoaXMuaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uRGVzdHJveSBsaWZlY3lsZSBob29rLlxyXG4gICAqIFVuc3Vic2NyaWJlIGZyb20gYW55IG9ic2VydmFibGVzXHJcbiAgICpcclxuICAgKiBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3NcclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGZvcm1Hcm91cC5tYXJrQXNVbnRvdWNoZWQoKTtcclxuXHJcbiAgICBsZXQgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgYWxsVG91Y2hlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBsZXQgY29udHJvbEZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgZm9yRWFjaEZvcm1Db250cm9sKGZvcm1Hcm91cCwgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBlcnJvcnMgPSB0aGlzLmFzc2lnbkVycm9ycyhjb250cm9sLCBlcnJvcnMpO1xyXG4gICAgICBpZiAoY29udHJvbC51bnRvdWNoZWQpIHtcclxuICAgICAgICBhbGxUb3VjaGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbEZvdW5kID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChmb3JtR3JvdXAuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBmb3JtR3JvdXAuZXJyb3JzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWxsVG91Y2hlZCAmJiBjb250cm9sRm91bmQpIHtcclxuICAgICAgZm9ybUdyb3VwLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3NpZ25FcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBjb250cm9sLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yc1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBmb3JtR3JvdXAncyB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZVxyXG4gICAqIHRvIHRha2UgYW55IGVycm9zIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBbZGF0YV1cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKSB7XHJcbiAgICBpZiAoZXJyb3JzKSB7XHJcbiAgICAgIGlmKHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3Ipe1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3IpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLmdldEVycm9yTWVzc2FnZXMoZXJyb3JzKTtcclxuICAgICAgICBpZiAobWVzc2FnZXMpIHtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IG1lc3NhZ2VzLmpvaW4oJzsgJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSAnJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRyb2wgY29udHJvbC1sYWJlbC17e2xhYmVsUG9zaXRpb259fVwiIFtjbGFzcy5lYy11bnRvdWNoZWRdPVwiZm9ybUdyb3VwPy51bnRvdWNoZWRcIj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIG5nUHJlc2VydmVXaGl0ZXNwYWNlcz5cclxuXHJcbiAgICA8c3BhbiBpZD1cInt7aWR9fV9sYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmFsaWRhdGlvbk1lc3NhZ2UgJiYgdmFsaWRhdGlvbkVycm9ycyAmJiBmb3JtR3JvdXA/LnRvdWNoZWQgJiYgZm9ybUdyb3VwPy5pbnZhbGlkXCI+e3t2YWxpZGF0aW9uRXJyb3JzIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBbUIsa0JBQWtCLEVBQW9CLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0gsT0FBTyxFQUFvQixlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBQ25DLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUd2Qzs7Ozs7Ozs7O0dBU0c7QUFDSCxNQUFNLENBQUMsTUFBTSxnQ0FBZ0MsR0FBRyxDQUFDLEVBQXVDLEVBQUUsZ0JBQStCLE9BQU8sRUFBRSxXQUFvQixFQUFRLEVBQUU7SUFDOUosSUFBSSxpQkFBaUIsR0FBNEIsRUFBRSxDQUFDO0lBRXBELG1FQUFtRTtJQUNuRSxzQ0FBc0M7SUFDdEMsa0JBQWtCLENBQUMsRUFBRSxFQUFFLENBQUMsT0FBd0IsRUFBRSxFQUFFO1FBQ2xELElBQUksWUFBWSxHQUFRLGVBQWUsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxD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Q0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUUsSUFBSSxRQUFRLEVBQUU7b0JBQ1osSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQzdDO2FBQ0Y7U0FDRjthQUFNO1lBQ0wsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztTQUM1QjtJQUNILENBQUM7OytHQTlJVSxrQkFBa0I7bUdBQWxCLGtCQUFrQiwrVEN2SS9CLDZhQVFNLG1tSEQ2SFEsSUFBSSw0RkFBRSxlQUFlOzJGQUV0QixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0ksZUFBZSxjQUdiLElBQUksV0FDUCxDQUFDLElBQUksRUFBRSxlQUFlLENBQUM7OElBT2xCLEVBQUU7c0JBQWpCLEtBQUs7Z0JBS3lCLE1BQU07c0JBQXBDLFdBQVc7dUJBQUMsU0FBUztnQkFLTixLQUFLO3NCQUFwQixLQUFLO2dCQVNVLFNBQVM7c0JBQXhCLEtBQUs7Z0JBS1UsYUFBYTtzQkFBNUIsS0FBSztnQkFNVSx1QkFBdUI7c0JBQXRDLEtBQUs7Z0JBSVUscUJBQXFCO3NCQUFwQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBIb3N0QmluZGluZyB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtR3JvdXAsIFVudHlwZWRGb3JtQXJyYXksIEFic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1Db250cm9sLCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vY29yZS92YWxpZGF0aW9uLW1lc3NhZ2Uuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBDb250cm9sTGFiZWxQb3NpdGlvbiB9IGZyb20gXCIuLi9mb3JtLWNvbnRyb2wtYmFzZVwiO1xyXG5pbXBvcnQgeyBOZ0lmIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xyXG5cclxuXHJcbi8qKiBGdW5jdGlvbiB0byBpdGVyYXRlIG92ZXIgZm9ybSBjb250cm9scyBhbmRcclxuICogIGVuc3VyZSB0aGV5IGNvbnRhaW4gdW5pcXVlIHZhbHVlcy4gIElmIGFueSBhcmUgZHVwbGljYXRlZCBhbGwgb2ZmZW5kaW5nXHJcbiAqICBmb3JtIGNvbnRyb2xzIHdpbGwgYmUgbWFya2VkIGFzIGludmFsaWRcclxuICpcclxuICogQHBhcmFtIHZhbHVlUHJvcGVydHkgLSB0aGUgc3ViLXByb3BlcnR5IG9mIHRoZSBvYmplY3QgcmVwcmVzZW50ZWQgYnkgZWFjaCBmb3JtIGNvbnRyb2xcclxuICogICAgICAgIGl0IGlzIGRlcmVmZXJlbmNlZCBhcyBmb3JtR3JvdXAuY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XS5cclxuICogICAgICAgIGRlZmF1bHRzIHRvIFwidmFsdWVcIiwgd2hpY2ggbWF0Y2hlcyB0aGUgZm9ybSBjb250cm9scyB1c2VkIHRvIGJhY2sgY29tYm9ib3hlc1xyXG4gKiAgICAgICAgaWYgZXhwbGljaXRseSBudWxsLCB0aGlzIGZ1bmN0aW9uIGFzc3VtZXMgdmFsdWUgaXMgbm90IGEgY29tcGxleCBvYmplY3QgYW5kIGp1c3QgZXh0cmFjdHNcclxuICogICAgICAgIGZvcm1Hcm91cC5jb250cm9sLnZhbHVlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgdmFsaWRhdGVGb3JtR3JvdXBWYWx1ZXNBcmVVbmlxdWUgPSAoZmc6IFVudHlwZWRGb3JtR3JvdXAgfCBVbnR5cGVkRm9ybUFycmF5LCB2YWx1ZVByb3BlcnR5OiBzdHJpbmcgfCBudWxsID0gXCJ2YWx1ZVwiLCBzdWJQcm9wZXJ0eT86IHN0cmluZyk6IHZvaWQgPT4ge1xyXG4gIGxldCBmb3JtQ29udHJvbFZhbHVlczoge1trZXk6IHN0cmluZ106IG51bWJlcn0gPSB7fTtcclxuXHJcbiAgLy8gRmlyc3QgZ2V0IGFsbCBvZiB0aGUgdmFsdWVzIGFuZCBpZiB0aGV5IGhhdmUgYmVlbiBmb3VuZCBhbHJlYWR5LFxyXG4gIC8vIGluY3JlbWVudCB0aGUgbnVtYmVyIG9mIHRpbWVzIGZvdW5kXHJcbiAgZm9yRWFjaEZvcm1Db250cm9sKGZnLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICBsZXQgY29udHJvbFZhbHVlOiBhbnkgPSBnZXRDb250cm9sVmFsdWUoY29udHJvbCwgdmFsdWVQcm9wZXJ0eSwgc3ViUHJvcGVydHkpO1xyXG5cclxuICAgIGlmIChjb250cm9sVmFsdWUgIT09IG51bGwgJiYgY29udHJvbFZhbHVlICE9PSAnJykge1xyXG4gICAgICBpZiAodHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb250cm9sVmFsdWUgPSBjb250cm9sVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZXMuaGFzT3duUHJvcGVydHkoY29udHJvbFZhbHVlKSkge1xyXG4gICAgICAgIGZvcm1Db250cm9sVmFsdWVzW2NvbnRyb2xWYWx1ZV0gPSBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdICsgMTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBmb3JtQ29udHJvbFZhbHVlc1tjb250cm9sVmFsdWVdID0gMTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICAvLyBOb3cgZ28gYmFjayBvdmVyIHRoZSBjb250cm9scyBhbmQgaWYgdGhlaXIgdmFsdWUgd2FzIGZvdW5kIG1vcmUgdGhhbiBvbmNlIGZsYWcgdGhlbSBhcyBpbnZhbGlkXHJcbiAgZm9yRWFjaEZvcm1Db250cm9sKGZnLCAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB7XHJcbiAgICBsZXQgY29udHJvbFZhbHVlOiBhbnkgPSBnZXRDb250cm9sVmFsdWUoY29udHJvbCwgdmFsdWVQcm9wZXJ0eSwgc3ViUHJvcGVydHkpO1xyXG5cclxuICAgIC8vIElmIHRoZSBjb250cm9sIHZhbHVlIGlzIG51bGwgd2Ugd2lsbCBsZXQgYW55IHJlcXVpcmVkIHZhbGlkYXRvcnMgaGFuZGxlIHRoZW1cclxuICAgIGlmIChjb250cm9sVmFsdWUgIT09IG51bGwgJiYgY29udHJvbFZhbHVlICE9PSAnJykge1xyXG4gICAgICBpZiAodHlwZW9mIGNvbnRyb2xWYWx1ZSA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICBjb250cm9sVmFsdWUgPSBjb250cm9sVmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAoZm9ybUNvbnRyb2xWYWx1ZXNbY29udHJvbFZhbHVlXSA+IDEpIHtcclxuICAgICAgICBjb250cm9sLnNldEVycm9ycyhPYmplY3QuYXNzaWduKHsgbm90VW5pcXVlOiB0cnVlIH0sIGNvbnRyb2wuZXJyb3JzKSk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgLy8gR2V0IGEgY29weSBvZiB0aGUgZXhpc3RpbmcgZm9ybSBjb250cm9sIGVycm9ycywgaWYgYW55XHJcbiAgICAgICAgbGV0IGVycm9ycyA9IGNsb25lRGVlcChjb250cm9sLmVycm9ycyk7XHJcblxyXG4gICAgICAgIC8vIElmIHRoZXJlIGFyZSBlcnJvcnMgYW5kIHByZXZpb3VzbHkgaGFkIHRoZSBub3RVbmlxdWUgZXJyb3Igd2Ugd2FudCB0byByZW1vdmVcclxuICAgICAgICAvLyB0aGF0IHByb3BlcnR5XHJcbiAgICAgICAgaWYgKGVycm9ycyAmJiBlcnJvcnMuaGFzT3duUHJvcGVydHkoXCJub3RVbmlxdWVcIikpIHtcclxuICAgICAgICAgIGRlbGV0ZSBlcnJvcnMubm90VW5pcXVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gSWYgdGhhdCB3YXMgdGhlIG9ubHkgZXJyb3IgaW4gdGhlIG9iamVjdCwgc2V0IHRvIG51bGwgc28gdmFsaWRhdGlvbiBwYXNzZXNcclxuICAgICAgICBpZiAoZXJyb3JzICYmIE9iamVjdC5rZXlzKGVycm9ycykubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICBlcnJvcnMgPSBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29udHJvbC5zZXRFcnJvcnMoZXJyb3JzKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRvIGl0ZXJhdGUgb3ZlciBmb3IgY29udHJvbHMgYW5kIGludm9rZSB0aGUgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiB0aGV5IGFyZSBmb3VuZC5cclxuICogUmVjdXJzaXZlbHkgY2FsbHMgaXRzZWxmIHdoZW4gaXQgZW5jb3VudGVycyBzdWIgZm9ybSBncm91cHMgYW5kIGl0ZXJhdGVzIG92ZXIgZm9ybSBhcnJheXMuXHJcbiAqIEBwYXJhbSBjXHJcbiAqIEBwYXJhbSBjYWxsYmFja1xyXG4gKi9cclxuZXhwb3J0IGNvbnN0IGZvckVhY2hGb3JtQ29udHJvbCA9IChjOiBBYnN0cmFjdENvbnRyb2wsIGNhbGxiYWNrOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiB2b2lkKTogdm9pZCA9PiB7XHJcbiAgbGV0IGNvbnRyb2xzOiBBYnN0cmFjdENvbnRyb2xbXSA9IFtdO1xyXG5cclxuICAvLyBOb3JtYWxpemUgdG8gYW4gYXJyYXkgZm9yIGVhc2Ugb2YgcHJvY2Vzc2luZ1xyXG4gIGlmIChjIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XHJcbiAgICBjb250cm9scy5wdXNoKGMpO1xyXG4gIH0gZWxzZSBpZiAoYyBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcclxuICAgIGZvciAodmFyIGtleSBpbiBjLmNvbnRyb2xzKSB7XHJcbiAgICAgIGNvbnRyb2xzLnB1c2goYy5jb250cm9sc1trZXldKTtcclxuICAgIH1cclxuICB9IGVsc2UgaWYgKGMgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICBjb250cm9scyA9IGMuY29udHJvbHM7XHJcbiAgfVxyXG5cclxuICBjb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xyXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUFycmF5KSB7XHJcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaChjdHJsID0+IHtcclxuICAgICAgICBpZiAoY3RybCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXAgfHwgY3RybCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcclxuICAgICAgICAgIGZvckVhY2hGb3JtQ29udHJvbChjdHJsLCBjYWxsYmFjayk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIGNhbGxiYWNrKGN0cmwpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2UgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XHJcbiAgICAgIGZvckVhY2hGb3JtQ29udHJvbChjb250cm9sLGNhbGxiYWNrKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNhbGxiYWNrKGNvbnRyb2wpO1xyXG4gICAgfVxyXG4gIH0pO1xyXG59O1xyXG5cclxuLyoqXHJcbiAqIEZ1bmN0aW9uIHRvIHJldHVybiB0aGUgdmFsdWUgaWYgaXQgaXMgZW5hYmxlZCBhbmQgc2V0XHJcbiAqIEBwYXJhbSBjb250cm9sXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgZ2V0Q29udHJvbFZhbHVlID0gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgdmFsdWVQcm9wZXJ0eTogc3RyaW5nIHwgbnVsbCA9IFwidmFsdWVcIiwgc3ViUHJvcGVydHk/OiBzdHJpbmcpOiBhbnkgfCBudWxsID0+IHtcclxuICBpZiAoY29udHJvbC5lbmFibGVkICYmIChjb250cm9sLnZhbHVlICE9PSBudWxsICYmIGNvbnRyb2wudmFsdWUgIT09IHVuZGVmaW5lZCkpIHtcclxuICAgIGlmICh2YWx1ZVByb3BlcnR5ID09PSBudWxsKSB7XHJcbiAgICAgIHJldHVybiBjb250cm9sLnZhbHVlO1xyXG4gICAgfSBlbHNlIGlmIChzdWJQcm9wZXJ0eSkge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XVtzdWJQcm9wZXJ0eV07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gY29udHJvbC52YWx1ZVt2YWx1ZVByb3BlcnR5XTtcclxuICAgIH1cclxuICB9IGVsc2Uge1xyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnZWMtZm9ybS1ncm91cCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1ncm91cC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgaW1wb3J0czogW05nSWYsIFRyYW5zbGF0ZU1vZHVsZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1Hcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIC8qKlxyXG4gICAqIElkXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGlkPzogc3RyaW5nO1xyXG5cclxuICAvKipcclxuICAgKiBCaW5kIGlkIHRvIGhvc3QgZWxlbWVudFxyXG4gICAqL1xyXG4gIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIHB1YmxpYyBhdHRySWQ/OiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBmb3JtIGNvbnRyb2wgbGFiZWxcclxuICAgKi9cclxuICBASW5wdXQoKSBwdWJsaWMgbGFiZWw6IHN0cmluZyA9ICcnO1xyXG5cclxuICAvKipcclxuICAgKiBVSS1vcmllbnRlZCBmb3JtIG1vZGVsIHRoYXQgcmV0YWlucyB0aGUgc3RhdGVzIGFuZCB2YWx1ZXMgb2YgdGhlIEhUTUwgY29udHJvbHMgb24gc2NyZWVuLlxyXG4gICAqIENhbiBiZSBhIHtAbGluayBGb3JtQ29udHJvbH0gb3IgYSB7QGxpbmsgRm9ybUdyb3VwfVxyXG4gICAqXHJcbiAgICogQHR5cGUge0Zvcm1Hcm91cH1cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIGZvcm1Hcm91cD86IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIC8qKlxyXG4gICAgICogVGhlIHBvc2l0aW9uIG9mIHRoZSBmb3JtIGNvbnRyb2wgbGFiZWwgKHRvcHxib3R0b218bGVmdClcclxuICAgICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbFBvc2l0aW9uPzogQ29udHJvbExhYmVsUG9zaXRpb24gPSBcInRvcFwiO1xyXG5cclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgc3RyaW5nIHRvIHNob3cgaWYgYW55IG9mIHRoZSB1bmRlcmx5aW5nIGNvbnRyb2xzIGhhcyBhbiBlcnJvci4gSWYgZmFsc3ksIG9uZSBvZiB0aGVcclxuICAgKiBlcnJvcnMgZnJvbSB0aGUgdW5kZXJseWluZyBjb250cm9scyB3aWxsIGJlIHVzZWQuXHJcbiAgICovXHJcbiAgQElucHV0KCkgcHVibGljIG92ZXJyaWRlVmFsaWRhdGlvbkVycm9yPzogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgLyoqQW4gb3B0aW9uYWwgZmxhZyB0byBoaWRlIHRoZSB2YWxpZGF0aW9uIG1lc3NhZ2VzLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBoaWRlVmFsaWRhdGlvbk1lc3NhZ2U/OmJvb2xlYW4gPSBmYWxzZTtcclxuICAvKipcclxuICAgKiBBbGwgY3VycmVudCB2YWxpZGF0aW9uIGVycm9yc1xyXG4gICAqXHJcbiAgICogQHR5cGUge3N0cmluZ31cclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIHZhbGlkYXRpb25FcnJvcnM6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIHB1YmxpYyBhbGxDb250cm9sc1RvdWNoZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQ6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0PGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgdmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlOiBWYWxpZGF0aW9uTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcclxuICApIHsgfVxyXG5cclxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICAvLyBzdWJzY3JpYmUgdG8gc3RhdHVzQ2hhbmdlcyBPYnNlcnZhYmxlIHRvIHRha2UgYW55IGVycm9ycyBhbmQgdHJhbnNsYXRlIHRoZW1cclxuICAgIGlmICh0aGlzLmZvcm1Hcm91cCkge1xyXG4gICAgICB0aGlzLmZvcm1Hcm91cC5zdGF0dXNDaGFuZ2VzXHJcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSlcclxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgIHRoaXMudHJhbnNsYXRlVmFsaWRhdGlvbk1lc3NhZ2VzKHRoaXMuZ2V0RXJyb3JzKHRoaXMuZm9ybUdyb3VwISkpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAvLyAocmUpc2V0IHZhbGlkYXRpb24gbWVzc2FnZXNcclxuICAgICAgdGhpcy50cmFuc2xhdGVWYWxpZGF0aW9uTWVzc2FnZXModGhpcy5nZXRFcnJvcnModGhpcy5mb3JtR3JvdXApKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pZCkge1xyXG4gICAgICB0aGlzLmF0dHJJZCA9IHRoaXMuaWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBBbmd1bGFyIG9uRGVzdHJveSBsaWZlY3lsZSBob29rLlxyXG4gICAqIFVuc3Vic2NyaWJlIGZyb20gYW55IG9ic2VydmFibGVzXHJcbiAgICpcclxuICAgKiBAc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9saWZlY3ljbGUtaG9va3NcclxuICAgKiBAbWVtYmVyb2YgRm9ybUNvbnRyb2xCYXNlXHJcbiAgICovXHJcbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQubmV4dCgpO1xyXG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0RXJyb3JzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgIGZvcm1Hcm91cC5tYXJrQXNVbnRvdWNoZWQoKTtcclxuXHJcbiAgICBsZXQgZXJyb3JzOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9IG51bGw7XHJcbiAgICBsZXQgYWxsVG91Y2hlZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICBsZXQgY29udHJvbEZvdW5kOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgZm9yRWFjaEZvcm1Db250cm9sKGZvcm1Hcm91cCwgKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4ge1xyXG4gICAgICBlcnJvcnMgPSB0aGlzLmFzc2lnbkVycm9ycyhjb250cm9sLCBlcnJvcnMpO1xyXG4gICAgICBpZiAoY29udHJvbC51bnRvdWNoZWQpIHtcclxuICAgICAgICBhbGxUb3VjaGVkID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgY29udHJvbEZvdW5kID0gdHJ1ZTtcclxuICAgIH0pO1xyXG5cclxuICAgIGlmIChmb3JtR3JvdXAuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBmb3JtR3JvdXAuZXJyb3JzKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoYWxsVG91Y2hlZCAmJiBjb250cm9sRm91bmQpIHtcclxuICAgICAgZm9ybUdyb3VwLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZXJyb3JzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3NpZ25FcnJvcnMoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xyXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzKSB7XHJcbiAgICAgIGVycm9ycyA9IE9iamVjdC5hc3NpZ24oZXJyb3JzIHx8IHt9LCBjb250cm9sLmVycm9ycyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGVycm9yc1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRnVuY3Rpb24gdGhhdCBzdWJzY3JpYmVzIHRvIHRoZSBmb3JtR3JvdXAncyB2YWx1ZUNoYW5nZXMgT2JzZXJ2YWJsZVxyXG4gICAqIHRvIHRha2UgYW55IGVycm9zIGFuZCB0cmFuc2xhdGUgdGhlbVxyXG4gICAqXHJcbiAgICogQHBhcmFtIHsqfSBbZGF0YV1cclxuICAgKiBAcmV0dXJuc1xyXG4gICAqIEBtZW1iZXJvZiBGb3JtQ29udHJvbEJhc2VcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHRyYW5zbGF0ZVZhbGlkYXRpb25NZXNzYWdlcyhlcnJvcnM6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsKSB7XHJcbiAgICBpZiAoZXJyb3JzKSB7XHJcbiAgICAgIGlmKHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3Ipe1xyXG4gICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KHRoaXMub3ZlcnJpZGVWYWxpZGF0aW9uRXJyb3IpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGxldCBtZXNzYWdlcyA9IGF3YWl0IHRoaXMudmFsaWRhdGlvbk1lc3NhZ2VTZXJ2aWNlLmdldEVycm9yTWVzc2FnZXMoZXJyb3JzKTtcclxuICAgICAgICBpZiAobWVzc2FnZXMpIHtcclxuICAgICAgICAgIHRoaXMudmFsaWRhdGlvbkVycm9ycyA9IG1lc3NhZ2VzLmpvaW4oJzsgJyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSAnJztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNvbnRyb2wgY29udHJvbC1sYWJlbC17e2xhYmVsUG9zaXRpb259fVwiIFtjbGFzcy5lYy11bnRvdWNoZWRdPVwiZm9ybUdyb3VwPy51bnRvdWNoZWRcIj5cclxuICA8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIG5nUHJlc2VydmVXaGl0ZXNwYWNlcz5cclxuXHJcbiAgICA8c3BhbiBpZD1cInt7aWR9fV9sYWJlbFwiPnt7bGFiZWwgfCB0cmFuc2xhdGV9fTwvc3Bhbj5cclxuXHJcbiAgICA8c3BhbiAqbmdJZj1cIiFoaWRlVmFsaWRhdGlvbk1lc3NhZ2UgJiYgdmFsaWRhdGlvbkVycm9ycyAmJiBmb3JtR3JvdXA/LnRvdWNoZWQgJiYgZm9ybUdyb3VwPy5pbnZhbGlkXCI+e3t2YWxpZGF0aW9uRXJyb3JzIHwgdHJhbnNsYXRlfX08L3NwYW4+XHJcbiAgPC9sYWJlbD5cclxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PiJdfQ==
@@ -1,8 +1,9 @@
1
1
  import { Component, HostBinding, Input } from '@angular/core';
2
+ import { PopoverComponent } from '../popover/popover.component';
3
+ import { TranslateModule } from '@ngx-translate/core';
4
+ import { NgIf } from '@angular/common';
2
5
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../popover/popover.component";
5
- import * as i3 from "@ngx-translate/core";
6
+ import * as i1 from "@ngx-translate/core";
6
7
  export class HelpPopoverComponent {
7
8
  constructor() {
8
9
  this.id = '';
@@ -12,10 +13,10 @@ export class HelpPopoverComponent {
12
13
  }
13
14
  }
14
15
  HelpPopoverComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HelpPopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- HelpPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: HelpPopoverComponent, selector: "ec-help-popover", inputs: { id: "id", text: "text", contentPosition: "contentPosition", maxWidth: "maxWidth" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<ec-popover id=\"{{id}}_popover\"\r\n icon=\"icon-help-circle\"\r\n [contentPosition]=\"contentPosition\"\r\n iconHoverClass=\"font-color-primary-light\">\r\n <div id=\"{{id}}_popoverContent\"\r\n class=\"help-popover-content text-body-1\"\r\n [class.is-right]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\"\r\n [style.max-width]=\"maxWidth\">\r\n <div *ngIf=\"text\"\r\n [innerHTML]=\"text | translate\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n</ec-popover>", styles: [".help-popover-content{--ec-color-link: var(--ec-color-link-light);background-color:#162f3b;color:var(--ec-color-primary-light);padding:.375rem .5rem .375rem 1.75rem}.help-popover-content.is-right{padding:.375rem 1.75rem .375rem .5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.PopoverComponent, selector: "ec-popover", inputs: ["icon", "tag", "tagHoverType", "contentPosition", "iconHoverClass"] }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
16
+ HelpPopoverComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: HelpPopoverComponent, isStandalone: true, selector: "ec-help-popover", inputs: { id: "id", text: "text", contentPosition: "contentPosition", maxWidth: "maxWidth" }, host: { properties: { "attr.id": "this.id" } }, ngImport: i0, template: "<ec-popover id=\"{{id}}_popover\"\r\n icon=\"icon-help-circle\"\r\n [contentPosition]=\"contentPosition\"\r\n iconHoverClass=\"font-color-primary-light\">\r\n <div id=\"{{id}}_popoverContent\"\r\n class=\"help-popover-content text-body-1\"\r\n [class.is-right]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\"\r\n [style.max-width]=\"maxWidth\">\r\n <div *ngIf=\"text\"\r\n [innerHTML]=\"text | translate\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n</ec-popover>", styles: [".help-popover-content{--ec-color-link: var(--ec-color-link-light);background-color:#162f3b;color:var(--ec-color-primary-light);padding:.375rem .5rem .375rem 1.75rem}.help-popover-content.is-right{padding:.375rem 1.75rem .375rem .5rem}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "ec-popover", inputs: ["icon", "tag", "tagHoverType", "contentPosition", "iconHoverClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }] });
16
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: HelpPopoverComponent, decorators: [{
17
18
  type: Component,
18
- args: [{ selector: 'ec-help-popover', template: "<ec-popover id=\"{{id}}_popover\"\r\n icon=\"icon-help-circle\"\r\n [contentPosition]=\"contentPosition\"\r\n iconHoverClass=\"font-color-primary-light\">\r\n <div id=\"{{id}}_popoverContent\"\r\n class=\"help-popover-content text-body-1\"\r\n [class.is-right]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\"\r\n [style.max-width]=\"maxWidth\">\r\n <div *ngIf=\"text\"\r\n [innerHTML]=\"text | translate\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n</ec-popover>", styles: [".help-popover-content{--ec-color-link: var(--ec-color-link-light);background-color:#162f3b;color:var(--ec-color-primary-light);padding:.375rem .5rem .375rem 1.75rem}.help-popover-content.is-right{padding:.375rem 1.75rem .375rem .5rem}\n"] }]
19
+ args: [{ selector: 'ec-help-popover', standalone: true, imports: [PopoverComponent, NgIf, TranslateModule], template: "<ec-popover id=\"{{id}}_popover\"\r\n icon=\"icon-help-circle\"\r\n [contentPosition]=\"contentPosition\"\r\n iconHoverClass=\"font-color-primary-light\">\r\n <div id=\"{{id}}_popoverContent\"\r\n class=\"help-popover-content text-body-1\"\r\n [class.is-right]=\"contentPosition == 'top-right' || contentPosition == 'bottom-right'\"\r\n [style.max-width]=\"maxWidth\">\r\n <div *ngIf=\"text\"\r\n [innerHTML]=\"text | translate\"></div>\r\n <ng-content></ng-content>\r\n </div>\r\n</ec-popover>", styles: [".help-popover-content{--ec-color-link: var(--ec-color-link-light);background-color:#162f3b;color:var(--ec-color-primary-light);padding:.375rem .5rem .375rem 1.75rem}.help-popover-content.is-right{padding:.375rem 1.75rem .375rem .5rem}\n"] }]
19
20
  }], ctorParameters: function () { return []; }, propDecorators: { id: [{
20
21
  type: Input
21
22
  }, {
@@ -28,4 +29,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
28
29
  }], maxWidth: [{
29
30
  type: Input
30
31
  }] } });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFROUQsTUFBTSxPQUFPLG9CQUFvQjtJQU8vQjtRQUxpQyxPQUFFLEdBQVcsRUFBRSxDQUFDO1FBQ3hDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsb0JBQWUsR0FBMkIsVUFBVSxDQUFDO1FBQ3JELGFBQVEsR0FBVyxPQUFPLENBQUM7SUFFcEIsQ0FBQzs7aUhBUE4sb0JBQW9CO3FHQUFwQixvQkFBb0IscU1DUmpDLG1qQkFZYTsyRkRKQSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzBFQU1NLEVBQUU7c0JBQWxDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsU0FBUztnQkFDdEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50UG9zaXRpb24gfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZWMtaGVscC1wb3BvdmVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaGVscC1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9oZWxwLXBvcG92ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSGVscFBvcG92ZXJDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKSBpZDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdGV4dDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgY29udGVudFBvc2l0aW9uOiBQb3BvdmVyQ29udGVudFBvc2l0aW9uID0gJ3RvcC1sZWZ0JztcclxuICBASW5wdXQoKSBtYXhXaWR0aDogc3RyaW5nID0gJzE1cmVtJztcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbn1cclxuIiwiPGVjLXBvcG92ZXIgaWQ9XCJ7e2lkfX1fcG9wb3ZlclwiXHJcbiAgICAgICAgICAgIGljb249XCJpY29uLWhlbHAtY2lyY2xlXCJcclxuICAgICAgICAgICAgW2NvbnRlbnRQb3NpdGlvbl09XCJjb250ZW50UG9zaXRpb25cIlxyXG4gICAgICAgICAgICBpY29uSG92ZXJDbGFzcz1cImZvbnQtY29sb3ItcHJpbWFyeS1saWdodFwiPlxyXG4gIDxkaXYgaWQ9XCJ7e2lkfX1fcG9wb3ZlckNvbnRlbnRcIlxyXG4gICAgICAgY2xhc3M9XCJoZWxwLXBvcG92ZXItY29udGVudCB0ZXh0LWJvZHktMVwiXHJcbiAgICAgICBbY2xhc3MuaXMtcmlnaHRdPVwiY29udGVudFBvc2l0aW9uID09ICd0b3AtcmlnaHQnIHx8IGNvbnRlbnRQb3NpdGlvbiA9PSAnYm90dG9tLXJpZ2h0J1wiXHJcbiAgICAgICBbc3R5bGUubWF4LXdpZHRoXT1cIm1heFdpZHRoXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwidGV4dFwiXHJcbiAgICAgICAgIFtpbm5lckhUTUxdPVwidGV4dCB8IHRyYW5zbGF0ZVwiPjwvZGl2PlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDwvZGl2PlxyXG48L2VjLXBvcG92ZXI+Il19
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscC1wb3BvdmVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy9oZWxwLXBvcG92ZXIvaGVscC1wb3BvdmVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQTBCLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBU3ZDLE1BQU0sT0FBTyxvQkFBb0I7SUFPL0I7UUFMaUMsT0FBRSxHQUFXLEVBQUUsQ0FBQztRQUN4QyxTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLG9CQUFlLEdBQTJCLFVBQVUsQ0FBQztRQUNyRCxhQUFRLEdBQVcsT0FBTyxDQUFDO0lBRXBCLENBQUM7O2lIQVBOLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHlOQ1pqQyxtakJBWWEsc1NERkMsZ0JBQWdCLHFJQUFFLElBQUksNEZBQUUsZUFBZTsyRkFFeEMsb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNJLGlCQUFpQixjQUdmLElBQUksV0FDUCxDQUFDLGdCQUFnQixFQUFFLElBQUksRUFBRSxlQUFlLENBQUM7MEVBSW5CLEVBQUU7c0JBQWxDLEtBQUs7O3NCQUFJLFdBQVc7dUJBQUMsU0FBUztnQkFDdEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBvcG92ZXJDb250ZW50UG9zaXRpb24sIFBvcG92ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wb3BvdmVyL3BvcG92ZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2VjLWhlbHAtcG9wb3ZlcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vaGVscC1wb3BvdmVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2hlbHAtcG9wb3Zlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtQb3BvdmVyQ29tcG9uZW50LCBOZ0lmLCBUcmFuc2xhdGVNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBIZWxwUG9wb3ZlckNvbXBvbmVudCB7XHJcblxyXG4gIEBJbnB1dCgpIEBIb3N0QmluZGluZygnYXR0ci5pZCcpIGlkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBjb250ZW50UG9zaXRpb246IFBvcG92ZXJDb250ZW50UG9zaXRpb24gPSAndG9wLWxlZnQnO1xyXG4gIEBJbnB1dCgpIG1heFdpZHRoOiBzdHJpbmcgPSAnMTVyZW0nO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHsgfVxyXG5cclxufVxyXG4iLCI8ZWMtcG9wb3ZlciBpZD1cInt7aWR9fV9wb3BvdmVyXCJcclxuICAgICAgICAgICAgaWNvbj1cImljb24taGVscC1jaXJjbGVcIlxyXG4gICAgICAgICAgICBbY29udGVudFBvc2l0aW9uXT1cImNvbnRlbnRQb3NpdGlvblwiXHJcbiAgICAgICAgICAgIGljb25Ib3ZlckNsYXNzPVwiZm9udC1jb2xvci1wcmltYXJ5LWxpZ2h0XCI+XHJcbiAgPGRpdiBpZD1cInt7aWR9fV9wb3BvdmVyQ29udGVudFwiXHJcbiAgICAgICBjbGFzcz1cImhlbHAtcG9wb3Zlci1jb250ZW50IHRleHQtYm9keS0xXCJcclxuICAgICAgIFtjbGFzcy5pcy1yaWdodF09XCJjb250ZW50UG9zaXRpb24gPT0gJ3RvcC1yaWdodCcgfHwgY29udGVudFBvc2l0aW9uID09ICdib3R0b20tcmlnaHQnXCJcclxuICAgICAgIFtzdHlsZS5tYXgtd2lkdGhdPVwibWF4V2lkdGhcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJ0ZXh0XCJcclxuICAgICAgICAgW2lubmVySFRNTF09XCJ0ZXh0IHwgdHJhbnNsYXRlXCI+PC9kaXY+XHJcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZWMtcG9wb3Zlcj4iXX0=