@openmrs/ngx-formentry 3.0.1-pre.62 → 3.0.1-pre.66

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.
@@ -1,18 +1,17 @@
1
1
  import { OnInit } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
2
3
  import * as i0 from "@angular/core";
3
- export declare class RadioButtonControlComponent implements OnInit {
4
+ export declare class RadioButtonControlComponent implements ControlValueAccessor, OnInit {
4
5
  id: String;
5
- selected: any;
6
6
  options: Array<any>;
7
- allowRadioUnselect: Boolean;
7
+ allowUnselect: boolean;
8
8
  ngOnInit(): void;
9
9
  writeValue(value: any): void;
10
10
  registerOnChange(fn: (_: any) => void): void;
11
11
  registerOnTouched(fn: () => void): void;
12
- selectOpt(option: any, event: any): void;
13
- selectUnselectOpt(option: any, event: any): void;
14
- private onChange;
15
- private onTouched;
12
+ handleClick(option: any): void;
13
+ onChange: (_: any) => void;
14
+ onTouched: () => void;
16
15
  static ɵfac: i0.ɵɵFactoryDeclaration<RadioButtonControlComponent, never>;
17
- static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonControlComponent, "ofe-radio-button", never, { "id": "id"; "selected": "selected"; "options": "options"; "allowRadioUnselect": "allowRadioUnselect"; }, {}, never, never>;
16
+ static ɵcmp: i0.ɵɵComponentDeclaration<RadioButtonControlComponent, "ofe-radio-button", never, { "id": "id"; "options": "options"; "allowUnselect": "allowUnselect"; }, {}, never, never>;
18
17
  }
@@ -4,17 +4,11 @@ import * as i0 from "@angular/core";
4
4
  import * as i1 from "@angular/common";
5
5
  export class RadioButtonControlComponent {
6
6
  constructor() {
7
- this.onChange = (change) => { };
7
+ this.onChange = (_) => { };
8
8
  this.onTouched = () => { };
9
9
  }
10
10
  ngOnInit() {
11
- this.options = this.options.map((option) => {
12
- if (this.selected == option.value) {
13
- this.selected = option.value;
14
- Object.assign(option, { checked: true });
15
- }
16
- return option;
17
- });
11
+ this.options = this.options.map((opt) => (Object.assign(Object.assign({}, opt), { checked: false })));
18
12
  }
19
13
  writeValue(value) { }
20
14
  registerOnChange(fn) {
@@ -23,41 +17,23 @@ export class RadioButtonControlComponent {
23
17
  registerOnTouched(fn) {
24
18
  this.onTouched = fn;
25
19
  }
26
- selectOpt(option, event) {
27
- this.options.forEach((o) => {
28
- if (event.target.checked && o.value == option.value) {
29
- this.selected = o.value;
30
- Object.assign(o, { checked: true });
31
- }
32
- else {
33
- this.selected = null;
34
- Object.assign(o, { checked: false });
35
- }
36
- });
37
- }
38
- selectUnselectOpt(option, event) {
39
- this.options.forEach((o) => {
40
- if (event.target.checked &&
41
- this.selected == o.value &&
42
- this.selected == option.value) {
43
- this.selected = null;
44
- Object.assign(o, { checked: false });
45
- }
46
- else if (event.target.checked && o.value == option.value) {
47
- this.selected = o.value;
48
- Object.assign(o, { checked: true });
49
- }
50
- });
20
+ handleClick(option) {
21
+ if (this.allowUnselect && option.checked) {
22
+ option.checked = false;
23
+ }
24
+ else if (!option.checked) {
25
+ option.checked = true;
26
+ }
51
27
  }
52
28
  }
53
29
  RadioButtonControlComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RadioButtonControlComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- RadioButtonControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: RadioButtonControlComponent, selector: "ofe-radio-button", inputs: { id: "id", selected: "selected", options: "options", allowRadioUnselect: "allowRadioUnselect" }, providers: [
30
+ RadioButtonControlComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: RadioButtonControlComponent, selector: "ofe-radio-button", inputs: { id: "id", options: "options", allowUnselect: "allowUnselect" }, providers: [
55
31
  {
56
32
  provide: NG_VALUE_ACCESSOR,
57
33
  useExisting: forwardRef(() => RadioButtonControlComponent),
58
34
  multi: true
59
35
  }
60
- ], ngImport: i0, template: "<fieldset class=\"bx--fieldset\">\n <div *ngFor=\"let option of options; let i = index\" class=\"bx--form-item bx--radio-wrapper\">\n <label class=\"form-control no-border\">\n <input type=\"radio\" [id]=\"id + '_' + i\" name=\"id\" [checked]=\"option.checked\" [value]=\"option.value\" (click)=\"allowRadioUnselect ? selectOpt(option, $event) : selectUnselectOpt(option, $event)\" />\n {{ option.label }}\n </label>\n </div>\n</fieldset>\n\n", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
36
+ ], ngImport: i0, template: "<fieldset class=\"cds--fieldset\">\n <div\n *ngFor=\"let option of options; let i = index\"\n class=\"cds--form-item cds--radio-wrapper\"\n >\n <label class=\"form-control no-border\">\n <input\n type=\"radio\"\n [id]=\"id + '_' + i\"\n [name]=\"id\"\n [checked]=\"option.checked\"\n [value]=\"option.value\"\n (click)=\"handleClick(option)\"\n />\n {{ option.label }}\n </label>\n </div>\n</fieldset>\n", directives: [{ type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
61
37
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: RadioButtonControlComponent, decorators: [{
62
38
  type: Component,
63
39
  args: [{
@@ -73,11 +49,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
73
49
  }]
74
50
  }], propDecorators: { id: [{
75
51
  type: Input
76
- }], selected: [{
77
- type: Input
78
52
  }], options: [{
79
53
  type: Input
80
- }], allowRadioUnselect: [{
54
+ }], allowUnselect: [{
81
55
  type: Input
82
56
  }] } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFjbkQsTUFBTSxPQUFPLDJCQUEyQjtJQVh4QztRQWlFVSxhQUFRLEdBQUcsQ0FBQyxNQUFXLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztRQUMvQixjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0tBQzlCO0lBbERRLFFBQVE7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7WUFDekMsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQztnQkFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUMxQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFVLElBQUcsQ0FBQztJQUV6QixnQkFBZ0IsQ0FBQyxFQUFvQjtRQUMxQyxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0saUJBQWlCLENBQUMsRUFBYztRQUNyQyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU0sU0FBUyxDQUFDLE1BQU0sRUFBRSxLQUFLO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekIsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQ25ELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNyQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztnQkFDckIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUN0QztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLGlCQUFpQixDQUFDLE1BQU0sRUFBRSxLQUFLO1FBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDekIsSUFDRSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQ3BCLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLEtBQUs7Z0JBQ3hCLElBQUksQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDLEtBQUssRUFDN0I7Z0JBQ0EsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7YUFDdEM7aUJBQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQztnQkFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQzthQUNyQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7eUhBcERVLDJCQUEyQjs2R0FBM0IsMkJBQTJCLHFKQVIzQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDJCQUEyQixDQUFDO1lBQzFELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNkSCwrY0FTQTs0RkRPYSwyQkFBMkI7a0JBWHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsV0FBVyxFQUFFLHdCQUF3QjtvQkFDckMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFFaUIsRUFBRTtzQkFBakIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1Usa0JBQWtCO3NCQUFqQyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgZm9yd2FyZFJlZiwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZmUtcmFkaW8tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0J1dHRvbkNvbnRyb2xDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgcHVibGljIGlkOiBTdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWxlY3RlZDogYW55O1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogQXJyYXk8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGFsbG93UmFkaW9VbnNlbGVjdDogQm9vbGVhbjtcblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5vcHRpb25zID0gdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWxlY3RlZCA9PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG9wdGlvbi52YWx1ZTtcbiAgICAgICAgT2JqZWN0LmFzc2lnbihvcHRpb24sIHsgY2hlY2tlZDogdHJ1ZSB9KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBvcHRpb247XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7fVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RPcHQob3B0aW9uLCBldmVudCkge1xuICAgIHRoaXMub3B0aW9ucy5mb3JFYWNoKChvKSA9PiB7XG4gICAgICBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQgJiYgby52YWx1ZSA9PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG8udmFsdWU7XG4gICAgICAgIE9iamVjdC5hc3NpZ24obywgeyBjaGVja2VkOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XG4gICAgICAgIE9iamVjdC5hc3NpZ24obywgeyBjaGVja2VkOiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RVbnNlbGVjdE9wdChvcHRpb24sIGV2ZW50KSB7XG4gICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG8pID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNoZWNrZWQgJiZcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9PSBvLnZhbHVlICYmXG4gICAgICAgIHRoaXMuc2VsZWN0ZWQgPT0gb3B0aW9uLnZhbHVlXG4gICAgICApIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG51bGw7XG4gICAgICAgIE9iamVjdC5hc3NpZ24obywgeyBjaGVja2VkOiBmYWxzZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoZXZlbnQudGFyZ2V0LmNoZWNrZWQgJiYgby52YWx1ZSA9PSBvcHRpb24udmFsdWUpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCA9IG8udmFsdWU7XG4gICAgICAgIE9iamVjdC5hc3NpZ24obywgeyBjaGVja2VkOiB0cnVlIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZSA9IChjaGFuZ2U6IGFueSkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge307XG59XG4iLCI8ZmllbGRzZXQgY2xhc3M9XCJieC0tZmllbGRzZXRcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cImJ4LS1mb3JtLWl0ZW0gYngtLXJhZGlvLXdyYXBwZXJcIj5cbiAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNvbnRyb2wgbm8tYm9yZGVyXCI+XG4gICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgW2lkXT1cImlkICsgJ18nICsgaVwiIG5hbWU9XCJpZFwiIFtjaGVja2VkXT1cIm9wdGlvbi5jaGVja2VkXCIgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiICAoY2xpY2spPVwiYWxsb3dSYWRpb1Vuc2VsZWN0ID8gc2VsZWN0T3B0KG9wdGlvbiwgJGV2ZW50KSA6IHNlbGVjdFVuc2VsZWN0T3B0KG9wdGlvbiwgJGV2ZW50KVwiIC8+XG4gICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbjwvZmllbGRzZXQ+XG5cbiJdfQ==
57
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWZvcm1lbnRyeS9zcmMvY29tcG9uZW50cy9yYWRpby1idXR0b24vcmFkaW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXJFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBY3pFLE1BQU0sT0FBTywyQkFBMkI7SUFYeEM7UUFzQ1MsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7UUFDMUIsY0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztLQUM3QjtJQXhCUSxRQUFRO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsaUNBQU0sR0FBRyxLQUFFLE9BQU8sRUFBRSxLQUFLLElBQUcsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBVSxJQUFHLENBQUM7SUFFekIsZ0JBQWdCLENBQUMsRUFBb0I7UUFDMUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVNLGlCQUFpQixDQUFDLEVBQWM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLFdBQVcsQ0FBQyxNQUFNO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFO1lBQ3hDLE1BQU0sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3hCO2FBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDMUIsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDOzt5SEF6QlUsMkJBQTJCOzZHQUEzQiwyQkFBMkIscUhBUjNCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsMkJBQTJCLENBQUM7WUFDMUQsS0FBSyxFQUFFLElBQUk7U0FDWjtLQUNGLDBCQ2RILDZkQWtCQTs0RkRGYSwyQkFBMkI7a0JBWHZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsV0FBVyxFQUFFLHdCQUF3QjtvQkFDckMsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDRCQUE0QixDQUFDOzRCQUMxRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRjs4QkFFaUIsRUFBRTtzQkFBakIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGFBQWE7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBmb3J3YXJkUmVmLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvZmUtcmFkaW8tYnV0dG9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JhZGlvLmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0J1dHRvbkNvbnRyb2xDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUmFkaW9CdXR0b25Db250cm9sQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBpZDogU3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogQXJyYXk8YW55PjtcbiAgQElucHV0KCkgcHVibGljIGFsbG93VW5zZWxlY3Q6IGJvb2xlYW47XG5cbiAgcHVibGljIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMub3B0aW9ucy5tYXAoKG9wdCkgPT4gKHsgLi4ub3B0LCBjaGVja2VkOiBmYWxzZSB9KSk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7fVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKSB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVDbGljayhvcHRpb24pIHtcbiAgICBpZiAodGhpcy5hbGxvd1Vuc2VsZWN0ICYmIG9wdGlvbi5jaGVja2VkKSB7XG4gICAgICBvcHRpb24uY2hlY2tlZCA9IGZhbHNlO1xuICAgIH0gZWxzZSBpZiAoIW9wdGlvbi5jaGVja2VkKSB7XG4gICAgICBvcHRpb24uY2hlY2tlZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ2hhbmdlID0gKF86IGFueSkgPT4ge307XG4gIHB1YmxpYyBvblRvdWNoZWQgPSAoKSA9PiB7fTtcbn1cbiIsIjxmaWVsZHNldCBjbGFzcz1cImNkcy0tZmllbGRzZXRcIj5cbiAgPGRpdlxuICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgbGV0IGkgPSBpbmRleFwiXG4gICAgY2xhc3M9XCJjZHMtLWZvcm0taXRlbSBjZHMtLXJhZGlvLXdyYXBwZXJcIlxuICA+XG4gICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jb250cm9sIG5vLWJvcmRlclwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgIFtpZF09XCJpZCArICdfJyArIGlcIlxuICAgICAgICBbbmFtZV09XCJpZFwiXG4gICAgICAgIFtjaGVja2VkXT1cIm9wdGlvbi5jaGVja2VkXCJcbiAgICAgICAgW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVDbGljayhvcHRpb24pXCJcbiAgICAgIC8+XG4gICAgICB7eyBvcHRpb24ubGFiZWwgfX1cbiAgICA8L2xhYmVsPlxuICA8L2Rpdj5cbjwvZmllbGRzZXQ+XG4iXX0=