mapa-library-ui 0.16.4 → 0.16.5

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 (21) hide show
  1. package/esm2020/src/lib/components/capability/lib/components/dropdown/src/dropdown.component.mjs +23 -13
  2. package/esm2020/src/lib/components/chart/lib/components/dropdown/src/dropdown.component.mjs +23 -13
  3. package/esm2020/src/lib/components/dropdown/lib/components/dropdown/src/dropdown.component.mjs +23 -13
  4. package/fesm2015/mapa-library-ui-src-lib-components-capability.mjs +22 -11
  5. package/fesm2015/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
  6. package/fesm2015/mapa-library-ui-src-lib-components-chart.mjs +22 -11
  7. package/fesm2015/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
  8. package/fesm2015/mapa-library-ui-src-lib-components-dropdown.mjs +22 -11
  9. package/fesm2015/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  10. package/fesm2020/mapa-library-ui-src-lib-components-capability.mjs +22 -12
  11. package/fesm2020/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
  12. package/fesm2020/mapa-library-ui-src-lib-components-chart.mjs +22 -12
  13. package/fesm2020/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
  14. package/fesm2020/mapa-library-ui-src-lib-components-dropdown.mjs +22 -12
  15. package/fesm2020/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  16. package/mapa-library-ui-0.16.5.tgz +0 -0
  17. package/package.json +1 -1
  18. package/src/lib/components/capability/lib/components/dropdown/src/dropdown.component.d.ts +4 -2
  19. package/src/lib/components/chart/lib/components/dropdown/src/dropdown.component.d.ts +4 -2
  20. package/src/lib/components/dropdown/lib/components/dropdown/src/dropdown.component.d.ts +4 -2
  21. package/mapa-library-ui-0.16.4.tgz +0 -0
@@ -21,17 +21,7 @@ export class MapaDropdownComponent {
21
21
  this.isOptionsGroup = false;
22
22
  }
23
23
  ngOnInit() {
24
- this.isOptionsGroup = this.isElementGroup(this.element.options[0]);
25
- if (this.isOptionsGroup) {
26
- this.filteredGroupCache = this.element
27
- .options.slice();
28
- this.filteredGroups.next(this.filteredGroupCache);
29
- }
30
- else {
31
- this.filteredOptionsCache = this.element
32
- .options.slice();
33
- this.filteredOptions.next(this.filteredOptionsCache);
34
- }
24
+ this.setOptions();
35
25
  if (this.element.search) {
36
26
  this.element.search.formControl?.valueChanges
37
27
  //.pipe(takeUntil(this._onDestroy))
@@ -41,10 +31,30 @@ export class MapaDropdownComponent {
41
31
  });
42
32
  }
43
33
  }
34
+ ngOnChanges(changes) {
35
+ if (changes["element"].previousValue?.controlType === "dropdown" &&
36
+ changes["element"].previousValue?.options !== changes["element"].currentValue?.options) {
37
+ this.element.options = changes["element"].currentValue.options;
38
+ this.setOptions();
39
+ }
40
+ }
44
41
  ngOnDestroy() {
45
42
  this._onDestroy.next();
46
43
  this._onDestroy.complete();
47
44
  }
45
+ setOptions() {
46
+ this.isOptionsGroup = this.isElementGroup(this.element.options[0]);
47
+ if (this.isOptionsGroup) {
48
+ this.filteredGroupCache = this.element
49
+ .options.slice();
50
+ this.filteredGroups.next(this.filteredGroupCache);
51
+ }
52
+ else {
53
+ this.filteredOptionsCache = this.element
54
+ .options.slice();
55
+ this.filteredOptions.next(this.filteredOptionsCache);
56
+ }
57
+ }
48
58
  filterOptionsFromGroup(group, value) {
49
59
  const filterValue = value.toLocaleLowerCase();
50
60
  return group.label.toLocaleLowerCase().includes(filterValue)
@@ -127,7 +137,7 @@ export class MapaDropdownComponent {
127
137
  }
128
138
  }
129
139
  MapaDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
130
- MapaDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: { formControl: "formControl", formControlSearch: "formControlSearch", element: "element", border: "border" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], ngImport: i0, template: "<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"true\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button color=\"basic\" (click)=\"element.actionButton.action.emit(true)\">\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n", styles: [".mapa-dropdown{max-width:min-content;min-width:235px}.mapa-dropdown .mat-select{font-family:SF-Pro!important}.mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center}.mapa-dropdown__label{display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}.mapa-dropdown--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown .mat-form-field-infix{border-top:unset!important;padding:unset!important}.mapa-dropdown .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown .mat-select-value-text{display:block;width:90%}.mapa-dropdown .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown .mat-select-arrow{border:unset}.mapa-dropdown .mat-select-arrow:before,.mapa-dropdown .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown{transform:translate(-16px) translateY(36px)!important}.mapa-overlay-dropdown .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown .mat-select-panel .mat-option,.mapa-overlay-dropdown .mat-select-panel .mat-option-text{font-family:SF-Pro!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown .mat-checkbox-frame{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
140
+ MapaDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: { formControl: "formControl", formControlSearch: "formControlSearch", element: "element", border: "border" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"true\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button color=\"basic\" (click)=\"element.actionButton.action.emit(true)\">\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n", styles: [".mapa-dropdown{max-width:min-content;min-width:235px}.mapa-dropdown .mat-select{font-family:SF-Pro!important}.mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center}.mapa-dropdown__label{display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}.mapa-dropdown--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown .mat-form-field-infix{border-top:unset!important;padding:unset!important}.mapa-dropdown .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown .mat-select-value-text{display:block;width:90%}.mapa-dropdown .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown .mat-select-arrow{border:unset}.mapa-dropdown .mat-select-arrow:before,.mapa-dropdown .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown{transform:translate(-16px) translateY(36px)!important}.mapa-overlay-dropdown .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown .mat-select-panel .mat-option,.mapa-overlay-dropdown .mat-select-panel .mat-option-text{font-family:SF-Pro!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown .mat-checkbox-frame{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
131
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaDropdownComponent, decorators: [{
132
142
  type: Component,
133
143
  args: [{ selector: "mapa-dropdown", encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"true\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button color=\"basic\" (click)=\"element.actionButton.action.emit(true)\">\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n", styles: [".mapa-dropdown{max-width:min-content;min-width:235px}.mapa-dropdown .mat-select{font-family:SF-Pro!important}.mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center}.mapa-dropdown__label{display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}.mapa-dropdown--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown .mat-form-field-infix{border-top:unset!important;padding:unset!important}.mapa-dropdown .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown .mat-select-value-text{display:block;width:90%}.mapa-dropdown .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown .mat-select-arrow{border:unset}.mapa-dropdown .mat-select-arrow:before,.mapa-dropdown .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown{transform:translate(-16px) translateY(36px)!important}.mapa-overlay-dropdown .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown .mat-select-panel .mat-option,.mapa-overlay-dropdown .mat-select-panel .mat-option-text{font-family:SF-Pro!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown .mat-checkbox-frame{border-color:#c3c4c7!important}\n"] }]
@@ -143,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
143
153
  type: ViewChild,
144
154
  args: ["dropdown", { static: true }]
145
155
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBR0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFhaEQsTUFBTSxPQUFPLHFCQUFxQjtJQXNCaEM7UUFkTyxvQkFBZSxHQUFtQyxJQUFJLGFBQWEsQ0FFeEUsQ0FBQyxDQUFDLENBQUM7UUFDRSxtQkFBYyxHQUFrQyxJQUFJLGFBQWEsQ0FFdEUsQ0FBQyxDQUFDLENBQUM7UUFDSyx5QkFBb0IsR0FBb0IsRUFBRSxDQUFDO1FBQzNDLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFDeEMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUVSLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FB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QkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVtQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcblxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzL2ludGVybmFsL1JlcGxheVN1YmplY3RcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9TdWJqZWN0XCI7XG4vL2ltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBFbGVtZW50T3B0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9lbGVtZW50LW9wdGlvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IERyb3Bkb3duIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZWxlbWVudHMvZHJvcGRvd25cIjtcbmltcG9ydCB7IEVsZW1lbnRHcm91cCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvZWxlbWVudC1ncm91cC5pbnRlcmZhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1hcGEtZHJvcGRvd25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZHJvcGRvd24uY29tcG9uZW50LnNjc3NcIl0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE1hcGFEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xTZWFyY2ghOiBGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgZWxlbWVudCE6IERyb3Bkb3duO1xuICBASW5wdXQoKSBib3JkZXI6IFwic29mdFwiIHwgXCJ0YWdcIiB8IFwiaGlnaGxpZ2h0XCIgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoXCJkcm9wZG93blwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBkcm9wZG93biE6IE1hdFNlbGVjdDtcblxuICBwdWJsaWMgZmlsdGVyZWRPcHRpb25zOiBSZXBsYXlTdWJqZWN0PEVsZW1lbnRPcHRpb25bXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxcbiAgICBFbGVtZW50T3B0aW9uW11cbiAgPigxKTtcbiAgcHVibGljIGZpbHRlcmVkR3JvdXBzOiBSZXBsYXlTdWJqZWN0PEVsZW1lbnRHcm91cFtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PFxuICAgIEVsZW1lbnRHcm91cFtdXG4gID4oMSk7XG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnNDYWNoZTogRWxlbWVudE9wdGlvbltdID0gW107XG4gIHByb3RlY3RlZCBmaWx0ZXJlZEdyb3VwQ2FjaGU6IEVsZW1lbnRHcm91cFtdID0gW107XG4gIHByb3RlY3RlZCBfb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBpc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgaXNDaGVja2VkID0gZmFsc2U7XG4gIGlzT3B0aW9uc0dyb3VwID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNPcHRpb25zR3JvdXAgPSB0aGlzLmlzRWxlbWVudEdyb3VwKHRoaXMuZWxlbWVudC5vcHRpb25zWzBdKTtcblxuICAgIGlmICh0aGlzLmlzT3B0aW9uc0dyb3VwKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBDYWNoZSA9ICh0aGlzLmVsZW1lbnRcbiAgICAgICAgLm9wdGlvbnMgYXMgRWxlbWVudEdyb3VwW10pLnNsaWNlKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBzLm5leHQodGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlID0gKHRoaXMuZWxlbWVudFxuICAgICAgICAub3B0aW9ucyBhcyBFbGVtZW50T3B0aW9uW10pLnNsaWNlKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5uZXh0KHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVsZW1lbnQuc2VhcmNoKSB7XG4gICAgICB0aGlzLmVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLy8ucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XG4gICAgICAgICAgdGhpcy5zZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5fb25EZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9uc0Zyb21Hcm91cChcbiAgICBncm91cDogRWxlbWVudEdyb3VwLFxuICAgIHZhbHVlOiBzdHJpbmdcbiAgKTogRWxlbWVudE9wdGlvbltdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gZ3JvdXAubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgID8gZ3JvdXAub3B0aW9uc1xuICAgICAgOiBncm91cC5vcHRpb25zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgICBpdGVtLnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpXG4gICAgICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudC5vcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIGdldCB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICBsZXQgc2VhcmNoID0gdGhpcy5lbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNPcHRpb25zR3JvdXApIHtcbiAgICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZWxlbWVudC5vcHRpb25zIGFzIEVsZW1lbnRHcm91cFtdO1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUgPSBncm91cHNcbiAgICAgICAgLm1hcCgoZ3JvdXA6IEVsZW1lbnRHcm91cCkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZ3JvdXAubGFiZWwsXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5maWx0ZXJPcHRpb25zRnJvbUdyb3VwKGdyb3VwLCBzZWFyY2gpLFxuICAgICAgICB9KSlcbiAgICAgICAgLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMubGVuZ3RoID4gMCk7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBzLm5leHQodGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50Lm9wdGlvbnMgYXMgRWxlbWVudE9wdGlvbltdO1xuICAgICAgaWYgKCFzZWFyY2gpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNDYWNoZSA9IG9wdGlvbnMuc2xpY2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMubmV4dCh0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gZmlsdGVyIHRoZSBvcHRpb25zXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlID0gb3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIChvcHRpb246IEVsZW1lbnRPcHRpb24pID0+XG4gICAgICAgICAgb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTFcbiAgICAgICk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5uZXh0KHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCkge1xuICAgIGxldCBmaWx0ZXJlZExlbmd0aCA9IDA7XG4gICAgbGV0IHNlYXJjaCA9IHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy52YWx1ZTtcblxuICAgIGlmIChzZWFyY2ggJiYgc2VhcmNoLnZhbHVlKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGlmIChzZWFyY2gudmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGVsKSA+IC0xKSB7XG4gICAgICAgICAgZmlsdGVyZWRMZW5ndGgrKztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9XG4gICAgICAgIGZpbHRlcmVkTGVuZ3RoID4gMCAmJiBmaWx0ZXJlZExlbmd0aCA8IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPVxuICAgICAgICBmaWx0ZXJlZExlbmd0aCA+IDAgJiZcbiAgICAgICAgZmlsdGVyZWRMZW5ndGggPT09IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbChzZWxlY3RBbGxWYWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnN1YnNjcmliZSgob3B0aW9uczogRWxlbWVudE9wdGlvbltdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnBhdGNoVmFsdWUoW10pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyZWRHcm91cHMuc3Vic2NyaWJlKChncm91cHM6IEVsZW1lbnRHcm91cFtdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICBncm91cHMubWFwKChncm91cDogRWxlbWVudEdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShbXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpc0VsZW1lbnRHcm91cChvYmplY3Q6IEVsZW1lbnRHcm91cCB8IEVsZW1lbnRPcHRpb24pOiBvYmplY3QgaXMgRWxlbWVudEdyb3VwIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLmxhYmVsICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLm9wdGlvbnMgIT09IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZUZuKGMxOiBhbnksIGMyOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYzEgJiYgYzIgPyBjMS5rZXkgPT09IGMyLmtleSA6IGMxID09PSBjMjtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImVsZW1lbnRcIj5cbiAgPGxhYmVsICpuZ0lmPVwiZWxlbWVudC5sYWJlbFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJtYXBhLWZvcm0tLWlubGluZVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1oaWdobGlnaHRdPVwiYm9yZGVyID09PSAnaGlnaGxpZ2h0J1wiXG4gICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi0tc29mdC1ib3JkZXJdPVwiYm9yZGVyID09PSAnc29mdCdcIlxuICAgICAgW2NsYXNzLm1hcGEtZHJvcGRvd24tLXRhZ109XCJib3JkZXIgPT09ICd0YWcnXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1sYWJlbGVkXT1cIiEhZWxlbWVudC5sYWJlbFwiXG4gICAgPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJlbGVtZW50Lm11bHRpcGxlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJlbGVtZW50LnNlYXJjaFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fc2VhcmNoXCI+XG4gICAgICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaFxuICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50LnNlYXJjaC5mb3JtQ29udHJvbFwiXG4gICAgICAgICAgICBbc2hvd1RvZ2dsZUFsbENoZWNrYm94XT1cInRydWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cImVsZW1lbnQuc2VhcmNoLnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXJMYWJlbFxuICAgICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwiZWxlbWVudC5zZWFyY2gubm9FbnRyaWVzRm91bmRMYWJlbCB8fCAnJ1wiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAodG9nZ2xlQWxsKT1cInRvZ2dsZVNlbGVjdEFsbCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPcHRpb25zR3JvdXA7IGVsc2UgaXNFbGVtZW50T3B0aW9uc1wiPlxuICAgICAgICAgIDxtYXQtb3B0Z3JvdXBcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBmaWx0ZXJlZEdyb3VwcyB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJncm91cC5sYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBncm91cC5vcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNFbGVtZW50T3B0aW9ucz5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5yZXF1aXJlZCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWlubGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2NwZicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jcGYgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignY25waicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jbnBqIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2VtYWlsJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/LmVtYWlsIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ucGF0dGVybiB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWluIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5tYXggfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignbWluTGVuZ3RoJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/Lm1pbkxlbmd0aCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhMZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWF4TGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXYgKm5nSWY9XCJlbGVtZW50LmFjdGlvbkJ1dHRvblwiIGNsYXNzPVwibWFwYS1mb3JtLS1hY3Rpb25cIj5cbiAgICAgIDxtYXBhLWJ1dHRvbiBjb2xvcj1cImJhc2ljXCIgKGNsaWNrKT1cImVsZW1lbnQuYWN0aW9uQnV0dG9uLmFjdGlvbi5lbWl0KHRydWUpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuYWN0aW9uQnV0dG9uLmxhYmVsIH19XG4gICAgICA8L21hcGEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBS0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFhaEQsTUFBTSxPQUFPLHFCQUFxQjtJQXNCaEM7UUFkTyxvQkFBZSxHQUFtQyxJQUFJLGFBQWEsQ0FFeEUsQ0FBQyxDQUFDLENBQUM7UUFDRSxtQkFBYyxHQUFrQyxJQUFJLGFBQWEsQ0FFdEUsQ0FBQyxDQUFDLENBQUM7UUFDSyx5QkFBb0IsR0FBb0IsRUFBRSxDQUFDO1FBQzNDLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFDeEMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUVSLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxP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T0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFPLEVBQUUsRUFBTztRQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDOzttSEFqS1UscUJBQXFCO3VHQUFyQixxQkFBcUIsb1RDN0JsQyx5OUdBMkZBOzRGRDlEYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJOzBFQUc1QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVtQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSBcInJ4anMvaW50ZXJuYWwvUmVwbGF5U3ViamVjdFwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzL2ludGVybmFsL1N1YmplY3RcIjtcbi8vaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IEVsZW1lbnRPcHRpb24gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9pbnRlcmZhY2VzL2VsZW1lbnQtb3B0aW9uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRHJvcGRvd24gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbGVtZW50cy9kcm9wZG93blwiO1xuaW1wb3J0IHsgRWxlbWVudEdyb3VwIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9lbGVtZW50LWdyb3VwLmludGVyZmFjZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWFwYS1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9kcm9wZG93bi5jb21wb25lbnQuc2Nzc1wiXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwYURyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sU2VhcmNoITogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGVsZW1lbnQhOiBEcm9wZG93bjtcbiAgQElucHV0KCkgYm9yZGVyOiBcInNvZnRcIiB8IFwidGFnXCIgfCBcImhpZ2hsaWdodFwiIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKFwiZHJvcGRvd25cIiwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcGRvd24hOiBNYXRTZWxlY3Q7XG5cbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogUmVwbGF5U3ViamVjdDxFbGVtZW50T3B0aW9uW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8XG4gICAgRWxlbWVudE9wdGlvbltdXG4gID4oMSk7XG4gIHB1YmxpYyBmaWx0ZXJlZEdyb3VwczogUmVwbGF5U3ViamVjdDxFbGVtZW50R3JvdXBbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxcbiAgICBFbGVtZW50R3JvdXBbXVxuICA+KDEpO1xuICBwcm90ZWN0ZWQgZmlsdGVyZWRPcHRpb25zQ2FjaGU6IEVsZW1lbnRPcHRpb25bXSA9IFtdO1xuICBwcm90ZWN0ZWQgZmlsdGVyZWRHcm91cENhY2hlOiBFbGVtZW50R3JvdXBbXSA9IFtdO1xuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gIGlzQ2hlY2tlZCA9IGZhbHNlO1xuICBpc09wdGlvbnNHcm91cCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldE9wdGlvbnMoKTtcblxuICAgIGlmICh0aGlzLmVsZW1lbnQuc2VhcmNoKSB7XG4gICAgICB0aGlzLmVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLy8ucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XG4gICAgICAgICAgdGhpcy5zZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1wiZWxlbWVudFwiXS5wcmV2aW91c1ZhbHVlPy5jb250cm9sVHlwZSA9PT0gXCJkcm9wZG93blwiICYmXG4gICAgICBjaGFuZ2VzW1wiZWxlbWVudFwiXS5wcmV2aW91c1ZhbHVlPy5vcHRpb25zICE9PSBjaGFuZ2VzW1wiZWxlbWVudFwiXS5jdXJyZW50VmFsdWU/Lm9wdGlvbnNcbiAgICApIHtcbiAgICAgIHRoaXMuZWxlbWVudC5vcHRpb25zID0gY2hhbmdlc1tcImVsZW1lbnRcIl0uY3VycmVudFZhbHVlLm9wdGlvbnM7XG4gICAgICB0aGlzLnNldE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0T3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3B0aW9uc0dyb3VwID0gdGhpcy5pc0VsZW1lbnRHcm91cCh0aGlzLmVsZW1lbnQub3B0aW9uc1swXSk7XG5cbiAgICBpZiAodGhpcy5pc09wdGlvbnNHcm91cCkge1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUgPSAodGhpcy5lbGVtZW50XG4gICAgICAgIC5vcHRpb25zIGFzIEVsZW1lbnRHcm91cFtdKS5zbGljZSgpO1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3Vwcy5uZXh0KHRoaXMuZmlsdGVyZWRHcm91cENhY2hlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNDYWNoZSA9ICh0aGlzLmVsZW1lbnRcbiAgICAgICAgLm9wdGlvbnMgYXMgRWxlbWVudE9wdGlvbltdKS5zbGljZSgpO1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMubmV4dCh0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9uc0Zyb21Hcm91cChcbiAgICBncm91cDogRWxlbWVudEdyb3VwLFxuICAgIHZhbHVlOiBzdHJpbmdcbiAgKTogRWxlbWVudE9wdGlvbltdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gZ3JvdXAubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgID8gZ3JvdXAub3B0aW9uc1xuICAgICAgOiBncm91cC5vcHRpb25zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgICBpdGVtLnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpXG4gICAgICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudC5vcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIGdldCB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICBsZXQgc2VhcmNoID0gdGhpcy5lbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNPcHRpb25zR3JvdXApIHtcbiAgICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZWxlbWVudC5vcHRpb25zIGFzIEVsZW1lbnRHcm91cFtdO1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUgPSBncm91cHNcbiAgICAgICAgLm1hcCgoZ3JvdXA6IEVsZW1lbnRHcm91cCkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZ3JvdXAubGFiZWwsXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5maWx0ZXJPcHRpb25zRnJvbUdyb3VwKGdyb3VwLCBzZWFyY2gpLFxuICAgICAgICB9KSlcbiAgICAgICAgLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMubGVuZ3RoID4gMCk7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBzLm5leHQodGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50Lm9wdGlvbnMgYXMgRWxlbWVudE9wdGlvbltdO1xuICAgICAgaWYgKCFzZWFyY2gpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNDYWNoZSA9IG9wdGlvbnMuc2xpY2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMubmV4dCh0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gZmlsdGVyIHRoZSBvcHRpb25zXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlID0gb3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIChvcHRpb246IEVsZW1lbnRPcHRpb24pID0+XG4gICAgICAgICAgb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTFcbiAgICAgICk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5uZXh0KHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCkge1xuICAgIGxldCBmaWx0ZXJlZExlbmd0aCA9IDA7XG4gICAgbGV0IHNlYXJjaCA9IHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy52YWx1ZTtcblxuICAgIGlmIChzZWFyY2ggJiYgc2VhcmNoLnZhbHVlKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGlmIChzZWFyY2gudmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGVsKSA+IC0xKSB7XG4gICAgICAgICAgZmlsdGVyZWRMZW5ndGgrKztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9XG4gICAgICAgIGZpbHRlcmVkTGVuZ3RoID4gMCAmJiBmaWx0ZXJlZExlbmd0aCA8IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPVxuICAgICAgICBmaWx0ZXJlZExlbmd0aCA+IDAgJiZcbiAgICAgICAgZmlsdGVyZWRMZW5ndGggPT09IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbChzZWxlY3RBbGxWYWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnN1YnNjcmliZSgob3B0aW9uczogRWxlbWVudE9wdGlvbltdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnBhdGNoVmFsdWUoW10pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyZWRHcm91cHMuc3Vic2NyaWJlKChncm91cHM6IEVsZW1lbnRHcm91cFtdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICBncm91cHMubWFwKChncm91cDogRWxlbWVudEdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShbXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpc0VsZW1lbnRHcm91cChvYmplY3Q6IEVsZW1lbnRHcm91cCB8IEVsZW1lbnRPcHRpb24pOiBvYmplY3QgaXMgRWxlbWVudEdyb3VwIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLmxhYmVsICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLm9wdGlvbnMgIT09IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZUZuKGMxOiBhbnksIGMyOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYzEgJiYgYzIgPyBjMS5rZXkgPT09IGMyLmtleSA6IGMxID09PSBjMjtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImVsZW1lbnRcIj5cbiAgPGxhYmVsICpuZ0lmPVwiZWxlbWVudC5sYWJlbFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJtYXBhLWZvcm0tLWlubGluZVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1oaWdobGlnaHRdPVwiYm9yZGVyID09PSAnaGlnaGxpZ2h0J1wiXG4gICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi0tc29mdC1ib3JkZXJdPVwiYm9yZGVyID09PSAnc29mdCdcIlxuICAgICAgW2NsYXNzLm1hcGEtZHJvcGRvd24tLXRhZ109XCJib3JkZXIgPT09ICd0YWcnXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1sYWJlbGVkXT1cIiEhZWxlbWVudC5sYWJlbFwiXG4gICAgPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJlbGVtZW50Lm11bHRpcGxlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJlbGVtZW50LnNlYXJjaFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fc2VhcmNoXCI+XG4gICAgICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaFxuICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50LnNlYXJjaC5mb3JtQ29udHJvbFwiXG4gICAgICAgICAgICBbc2hvd1RvZ2dsZUFsbENoZWNrYm94XT1cInRydWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cImVsZW1lbnQuc2VhcmNoLnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXJMYWJlbFxuICAgICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwiZWxlbWVudC5zZWFyY2gubm9FbnRyaWVzRm91bmRMYWJlbCB8fCAnJ1wiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAodG9nZ2xlQWxsKT1cInRvZ2dsZVNlbGVjdEFsbCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPcHRpb25zR3JvdXA7IGVsc2UgaXNFbGVtZW50T3B0aW9uc1wiPlxuICAgICAgICAgIDxtYXQtb3B0Z3JvdXBcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBmaWx0ZXJlZEdyb3VwcyB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJncm91cC5sYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBncm91cC5vcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNFbGVtZW50T3B0aW9ucz5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5yZXF1aXJlZCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWlubGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2NwZicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jcGYgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignY25waicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jbnBqIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2VtYWlsJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/LmVtYWlsIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ucGF0dGVybiB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWluIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5tYXggfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignbWluTGVuZ3RoJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/Lm1pbkxlbmd0aCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhMZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWF4TGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXYgKm5nSWY9XCJlbGVtZW50LmFjdGlvbkJ1dHRvblwiIGNsYXNzPVwibWFwYS1mb3JtLS1hY3Rpb25cIj5cbiAgICAgIDxtYXBhLWJ1dHRvbiBjb2xvcj1cImJhc2ljXCIgKGNsaWNrKT1cImVsZW1lbnQuYWN0aW9uQnV0dG9uLmFjdGlvbi5lbWl0KHRydWUpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuYWN0aW9uQnV0dG9uLmxhYmVsIH19XG4gICAgICA8L21hcGEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -21,17 +21,7 @@ export class MapaDropdownComponent {
21
21
  this.isOptionsGroup = false;
22
22
  }
23
23
  ngOnInit() {
24
- this.isOptionsGroup = this.isElementGroup(this.element.options[0]);
25
- if (this.isOptionsGroup) {
26
- this.filteredGroupCache = this.element
27
- .options.slice();
28
- this.filteredGroups.next(this.filteredGroupCache);
29
- }
30
- else {
31
- this.filteredOptionsCache = this.element
32
- .options.slice();
33
- this.filteredOptions.next(this.filteredOptionsCache);
34
- }
24
+ this.setOptions();
35
25
  if (this.element.search) {
36
26
  this.element.search.formControl?.valueChanges
37
27
  //.pipe(takeUntil(this._onDestroy))
@@ -41,10 +31,30 @@ export class MapaDropdownComponent {
41
31
  });
42
32
  }
43
33
  }
34
+ ngOnChanges(changes) {
35
+ if (changes["element"].previousValue?.controlType === "dropdown" &&
36
+ changes["element"].previousValue?.options !== changes["element"].currentValue?.options) {
37
+ this.element.options = changes["element"].currentValue.options;
38
+ this.setOptions();
39
+ }
40
+ }
44
41
  ngOnDestroy() {
45
42
  this._onDestroy.next();
46
43
  this._onDestroy.complete();
47
44
  }
45
+ setOptions() {
46
+ this.isOptionsGroup = this.isElementGroup(this.element.options[0]);
47
+ if (this.isOptionsGroup) {
48
+ this.filteredGroupCache = this.element
49
+ .options.slice();
50
+ this.filteredGroups.next(this.filteredGroupCache);
51
+ }
52
+ else {
53
+ this.filteredOptionsCache = this.element
54
+ .options.slice();
55
+ this.filteredOptions.next(this.filteredOptionsCache);
56
+ }
57
+ }
48
58
  filterOptionsFromGroup(group, value) {
49
59
  const filterValue = value.toLocaleLowerCase();
50
60
  return group.label.toLocaleLowerCase().includes(filterValue)
@@ -127,7 +137,7 @@ export class MapaDropdownComponent {
127
137
  }
128
138
  }
129
139
  MapaDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
130
- MapaDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: { formControl: "formControl", formControlSearch: "formControlSearch", element: "element", border: "border" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], ngImport: i0, template: "<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"true\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button color=\"basic\" (click)=\"element.actionButton.action.emit(true)\">\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n", styles: [".mapa-dropdown{max-width:min-content;min-width:235px}.mapa-dropdown .mat-select{font-family:SF-Pro!important}.mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center}.mapa-dropdown__label{display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}.mapa-dropdown--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown .mat-form-field-infix{border-top:unset!important;padding:unset!important}.mapa-dropdown .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown .mat-select-value-text{display:block;width:90%}.mapa-dropdown .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown .mat-select-arrow{border:unset}.mapa-dropdown .mat-select-arrow:before,.mapa-dropdown .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown{transform:translate(-16px) translateY(36px)!important}.mapa-overlay-dropdown .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown .mat-select-panel .mat-option,.mapa-overlay-dropdown .mat-select-panel .mat-option-text{font-family:SF-Pro!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown .mat-checkbox-frame{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
140
+ MapaDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaDropdownComponent, selector: "mapa-dropdown", inputs: { formControl: "formControl", formControlSearch: "formControlSearch", element: "element", border: "border" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"true\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button color=\"basic\" (click)=\"element.actionButton.action.emit(true)\">\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n", styles: [".mapa-dropdown{max-width:min-content;min-width:235px}.mapa-dropdown .mat-select{font-family:SF-Pro!important}.mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center}.mapa-dropdown__label{display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}.mapa-dropdown--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown .mat-form-field-infix{border-top:unset!important;padding:unset!important}.mapa-dropdown .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown .mat-select-value-text{display:block;width:90%}.mapa-dropdown .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown .mat-select-arrow{border:unset}.mapa-dropdown .mat-select-arrow:before,.mapa-dropdown .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown{transform:translate(-16px) translateY(36px)!important}.mapa-overlay-dropdown .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown .mat-select-panel .mat-option,.mapa-overlay-dropdown .mat-select-panel .mat-option-text{font-family:SF-Pro!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown .mat-checkbox-frame{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.ButtonComponent, selector: "mapa-button", inputs: ["color", "disabled"], outputs: ["clicked"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i6.MatOptgroup, selector: "mat-optgroup", inputs: ["disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i7.MatSelectSearchComponent, selector: "ngx-mat-select-search", inputs: ["placeholderLabel", "type", "closeIcon", "closeSvgIcon", "noEntriesFoundLabel", "clearSearchInput", "searching", "disableInitialFocus", "enableClearOnEscapePressed", "preventHomeEndKeyPropagation", "disableScrollToActiveOnOptionsChanged", "ariaLabel", "showToggleAllCheckbox", "toggleAllCheckboxChecked", "toggleAllCheckboxIndeterminate", "toggleAllCheckboxTooltipMessage", "toggleAllCheckboxTooltipPosition", "hideClearSearchButton", "alwaysRestoreSelectedOptionsMulti"], outputs: ["toggleAll"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
131
141
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaDropdownComponent, decorators: [{
132
142
  type: Component,
133
143
  args: [{ selector: "mapa-dropdown", encapsulation: ViewEncapsulation.None, template: "<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"true\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button color=\"basic\" (click)=\"element.actionButton.action.emit(true)\">\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n", styles: [".mapa-dropdown{max-width:min-content;min-width:235px}.mapa-dropdown .mat-select{font-family:SF-Pro!important}.mapa-dropdown .mat-icon{display:flex;justify-content:center;align-items:center}.mapa-dropdown__label{display:block;font-size:12px;font-style:normal;font-weight:600;line-height:16px;text-transform:uppercase;margin-bottom:16px}.mapa-dropdown--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown .mat-form-field-infix{border-top:unset!important;padding:unset!important}.mapa-dropdown .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown .mat-select-value-text{display:block;width:90%}.mapa-dropdown .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown .mat-select-arrow{border:unset}.mapa-dropdown .mat-select-arrow:before,.mapa-dropdown .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown{transform:translate(-16px) translateY(36px)!important}.mapa-overlay-dropdown .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown .mat-select-panel .mat-option,.mapa-overlay-dropdown .mat-select-panel .mat-option-text{font-family:SF-Pro!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown .mat-checkbox-frame{border-color:#c3c4c7!important}\n"] }]
@@ -143,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
143
153
  type: ViewChild,
144
154
  args: ["dropdown", { static: true }]
145
155
  }] } });
146
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBR0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFhaEQsTUFBTSxPQUFPLHFCQUFxQjtJQXNCaEM7UUFkTyxvQkFBZSxHQUFtQyxJQUFJLGFBQWEsQ0FFeEUsQ0FBQyxDQUFDLENBQUM7UUFDRSxtQkFBYyxHQUFrQyxJQUFJLGFBQWEsQ0FFdEUsQ0FBQyxDQUFDLENBQUM7UUFDSyx5QkFBb0IsR0FBb0IsRUFBRSxDQUFDO1FBQzNDLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFDeEMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUVSLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FB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QkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVtQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5cbmltcG9ydCB7IE1hdFNlbGVjdCB9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3RcIjtcblxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzL2ludGVybmFsL1JlcGxheVN1YmplY3RcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9TdWJqZWN0XCI7XG4vL2ltcG9ydCB7IHRha2UsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBFbGVtZW50T3B0aW9uIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9lbGVtZW50LW9wdGlvbi5pbnRlcmZhY2VcIjtcbmltcG9ydCB7IERyb3Bkb3duIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvZWxlbWVudHMvZHJvcGRvd25cIjtcbmltcG9ydCB7IEVsZW1lbnRHcm91cCB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ludGVyZmFjZXMvZWxlbWVudC1ncm91cC5pbnRlcmZhY2VcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcIm1hcGEtZHJvcGRvd25cIixcbiAgdGVtcGxhdGVVcmw6IFwiLi9kcm9wZG93bi5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybHM6IFtcIi4vZHJvcGRvd24uY29tcG9uZW50LnNjc3NcIl0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIE1hcGFEcm9wZG93bkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgZm9ybUNvbnRyb2xTZWFyY2ghOiBGb3JtQ29udHJvbDtcbiAgQElucHV0KCkgZWxlbWVudCE6IERyb3Bkb3duO1xuICBASW5wdXQoKSBib3JkZXI6IFwic29mdFwiIHwgXCJ0YWdcIiB8IFwiaGlnaGxpZ2h0XCIgfCBudWxsIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoXCJkcm9wZG93blwiLCB7IHN0YXRpYzogdHJ1ZSB9KSBkcm9wZG93biE6IE1hdFNlbGVjdDtcblxuICBwdWJsaWMgZmlsdGVyZWRPcHRpb25zOiBSZXBsYXlTdWJqZWN0PEVsZW1lbnRPcHRpb25bXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxcbiAgICBFbGVtZW50T3B0aW9uW11cbiAgPigxKTtcbiAgcHVibGljIGZpbHRlcmVkR3JvdXBzOiBSZXBsYXlTdWJqZWN0PEVsZW1lbnRHcm91cFtdPiA9IG5ldyBSZXBsYXlTdWJqZWN0PFxuICAgIEVsZW1lbnRHcm91cFtdXG4gID4oMSk7XG4gIHByb3RlY3RlZCBmaWx0ZXJlZE9wdGlvbnNDYWNoZTogRWxlbWVudE9wdGlvbltdID0gW107XG4gIHByb3RlY3RlZCBmaWx0ZXJlZEdyb3VwQ2FjaGU6IEVsZW1lbnRHcm91cFtdID0gW107XG4gIHByb3RlY3RlZCBfb25EZXN0cm95ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBpc0luZGV0ZXJtaW5hdGUgPSBmYWxzZTtcbiAgaXNDaGVja2VkID0gZmFsc2U7XG4gIGlzT3B0aW9uc0dyb3VwID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNPcHRpb25zR3JvdXAgPSB0aGlzLmlzRWxlbWVudEdyb3VwKHRoaXMuZWxlbWVudC5vcHRpb25zWzBdKTtcblxuICAgIGlmICh0aGlzLmlzT3B0aW9uc0dyb3VwKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBDYWNoZSA9ICh0aGlzLmVsZW1lbnRcbiAgICAgICAgLm9wdGlvbnMgYXMgRWxlbWVudEdyb3VwW10pLnNsaWNlKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBzLm5leHQodGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlID0gKHRoaXMuZWxlbWVudFxuICAgICAgICAub3B0aW9ucyBhcyBFbGVtZW50T3B0aW9uW10pLnNsaWNlKCk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5uZXh0KHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmVsZW1lbnQuc2VhcmNoKSB7XG4gICAgICB0aGlzLmVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLy8ucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XG4gICAgICAgICAgdGhpcy5zZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX29uRGVzdHJveS5uZXh0KCk7XG4gICAgdGhpcy5fb25EZXN0cm95LmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9uc0Zyb21Hcm91cChcbiAgICBncm91cDogRWxlbWVudEdyb3VwLFxuICAgIHZhbHVlOiBzdHJpbmdcbiAgKTogRWxlbWVudE9wdGlvbltdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gZ3JvdXAubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgID8gZ3JvdXAub3B0aW9uc1xuICAgICAgOiBncm91cC5vcHRpb25zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgICBpdGVtLnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpXG4gICAgICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudC5vcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIGdldCB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICBsZXQgc2VhcmNoID0gdGhpcy5lbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNPcHRpb25zR3JvdXApIHtcbiAgICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZWxlbWVudC5vcHRpb25zIGFzIEVsZW1lbnRHcm91cFtdO1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUgPSBncm91cHNcbiAgICAgICAgLm1hcCgoZ3JvdXA6IEVsZW1lbnRHcm91cCkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZ3JvdXAubGFiZWwsXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5maWx0ZXJPcHRpb25zRnJvbUdyb3VwKGdyb3VwLCBzZWFyY2gpLFxuICAgICAgICB9KSlcbiAgICAgICAgLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMubGVuZ3RoID4gMCk7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBzLm5leHQodGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50Lm9wdGlvbnMgYXMgRWxlbWVudE9wdGlvbltdO1xuICAgICAgaWYgKCFzZWFyY2gpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNDYWNoZSA9IG9wdGlvbnMuc2xpY2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMubmV4dCh0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gZmlsdGVyIHRoZSBvcHRpb25zXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlID0gb3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIChvcHRpb246IEVsZW1lbnRPcHRpb24pID0+XG4gICAgICAgICAgb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTFcbiAgICAgICk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5uZXh0KHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCkge1xuICAgIGxldCBmaWx0ZXJlZExlbmd0aCA9IDA7XG4gICAgbGV0IHNlYXJjaCA9IHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy52YWx1ZTtcblxuICAgIGlmIChzZWFyY2ggJiYgc2VhcmNoLnZhbHVlKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGlmIChzZWFyY2gudmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGVsKSA+IC0xKSB7XG4gICAgICAgICAgZmlsdGVyZWRMZW5ndGgrKztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9XG4gICAgICAgIGZpbHRlcmVkTGVuZ3RoID4gMCAmJiBmaWx0ZXJlZExlbmd0aCA8IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPVxuICAgICAgICBmaWx0ZXJlZExlbmd0aCA+IDAgJiZcbiAgICAgICAgZmlsdGVyZWRMZW5ndGggPT09IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbChzZWxlY3RBbGxWYWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnN1YnNjcmliZSgob3B0aW9uczogRWxlbWVudE9wdGlvbltdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnBhdGNoVmFsdWUoW10pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyZWRHcm91cHMuc3Vic2NyaWJlKChncm91cHM6IEVsZW1lbnRHcm91cFtdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICBncm91cHMubWFwKChncm91cDogRWxlbWVudEdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShbXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpc0VsZW1lbnRHcm91cChvYmplY3Q6IEVsZW1lbnRHcm91cCB8IEVsZW1lbnRPcHRpb24pOiBvYmplY3QgaXMgRWxlbWVudEdyb3VwIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLmxhYmVsICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLm9wdGlvbnMgIT09IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZUZuKGMxOiBhbnksIGMyOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYzEgJiYgYzIgPyBjMS5rZXkgPT09IGMyLmtleSA6IGMxID09PSBjMjtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImVsZW1lbnRcIj5cbiAgPGxhYmVsICpuZ0lmPVwiZWxlbWVudC5sYWJlbFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJtYXBhLWZvcm0tLWlubGluZVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1oaWdobGlnaHRdPVwiYm9yZGVyID09PSAnaGlnaGxpZ2h0J1wiXG4gICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi0tc29mdC1ib3JkZXJdPVwiYm9yZGVyID09PSAnc29mdCdcIlxuICAgICAgW2NsYXNzLm1hcGEtZHJvcGRvd24tLXRhZ109XCJib3JkZXIgPT09ICd0YWcnXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1sYWJlbGVkXT1cIiEhZWxlbWVudC5sYWJlbFwiXG4gICAgPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJlbGVtZW50Lm11bHRpcGxlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJlbGVtZW50LnNlYXJjaFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fc2VhcmNoXCI+XG4gICAgICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaFxuICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50LnNlYXJjaC5mb3JtQ29udHJvbFwiXG4gICAgICAgICAgICBbc2hvd1RvZ2dsZUFsbENoZWNrYm94XT1cInRydWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cImVsZW1lbnQuc2VhcmNoLnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXJMYWJlbFxuICAgICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwiZWxlbWVudC5zZWFyY2gubm9FbnRyaWVzRm91bmRMYWJlbCB8fCAnJ1wiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAodG9nZ2xlQWxsKT1cInRvZ2dsZVNlbGVjdEFsbCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPcHRpb25zR3JvdXA7IGVsc2UgaXNFbGVtZW50T3B0aW9uc1wiPlxuICAgICAgICAgIDxtYXQtb3B0Z3JvdXBcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBmaWx0ZXJlZEdyb3VwcyB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJncm91cC5sYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBncm91cC5vcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNFbGVtZW50T3B0aW9ucz5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5yZXF1aXJlZCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWlubGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2NwZicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jcGYgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignY25waicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jbnBqIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2VtYWlsJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/LmVtYWlsIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ucGF0dGVybiB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWluIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5tYXggfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignbWluTGVuZ3RoJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/Lm1pbkxlbmd0aCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhMZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWF4TGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXYgKm5nSWY9XCJlbGVtZW50LmFjdGlvbkJ1dHRvblwiIGNsYXNzPVwibWFwYS1mb3JtLS1hY3Rpb25cIj5cbiAgICAgIDxtYXBhLWJ1dHRvbiBjb2xvcj1cImJhc2ljXCIgKGNsaWNrKT1cImVsZW1lbnQuYWN0aW9uQnV0dG9uLmFjdGlvbi5lbWl0KHRydWUpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuYWN0aW9uQnV0dG9uLmxhYmVsIH19XG4gICAgICA8L21hcGEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFwYS1saWJyYXJ5LXVpL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9zcmMvZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxLQUFLLEVBS0wsU0FBUyxFQUNULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUt2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7QUFhaEQsTUFBTSxPQUFPLHFCQUFxQjtJQXNCaEM7UUFkTyxvQkFBZSxHQUFtQyxJQUFJLGFBQWEsQ0FFeEUsQ0FBQyxDQUFDLENBQUM7UUFDRSxtQkFBYyxHQUFrQyxJQUFJLGFBQWEsQ0FFdEUsQ0FBQyxDQUFDLENBQUM7UUFDSyx5QkFBb0IsR0FBb0IsRUFBRSxDQUFDO1FBQzNDLHVCQUFrQixHQUFtQixFQUFFLENBQUM7UUFDeEMsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFFM0Msb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixtQkFBYyxHQUFHLEtBQUssQ0FBQztJQUVSLENBQUM7SUFFaEIsUUFBUTtRQUNOLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUVsQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxP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T0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLEtBQUssQ0FBQztTQUNkO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxFQUFPLEVBQUUsRUFBTztRQUN4QixPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUNsRCxDQUFDOzttSEFqS1UscUJBQXFCO3VHQUFyQixxQkFBcUIsb1RDN0JsQyx5OUdBMkZBOzRGRDlEYSxxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZUFBZSxpQkFHVixpQkFBaUIsQ0FBQyxJQUFJOzBFQUc1QixXQUFXO3NCQUFuQixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUVtQyxRQUFRO3NCQUFoRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcblxuaW1wb3J0IHsgTWF0U2VsZWN0IH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL3NlbGVjdFwiO1xuXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSBcInJ4anMvaW50ZXJuYWwvUmVwbGF5U3ViamVjdFwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzL2ludGVybmFsL1N1YmplY3RcIjtcbi8vaW1wb3J0IHsgdGFrZSwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IEVsZW1lbnRPcHRpb24gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9pbnRlcmZhY2VzL2VsZW1lbnQtb3B0aW9uLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRHJvcGRvd24gfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9lbGVtZW50cy9kcm9wZG93blwiO1xuaW1wb3J0IHsgRWxlbWVudEdyb3VwIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvaW50ZXJmYWNlcy9lbGVtZW50LWdyb3VwLmludGVyZmFjZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwibWFwYS1kcm9wZG93blwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Ryb3Bkb3duLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9kcm9wZG93bi5jb21wb25lbnQuc2Nzc1wiXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgTWFwYURyb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sITogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGZvcm1Db250cm9sU2VhcmNoITogRm9ybUNvbnRyb2w7XG4gIEBJbnB1dCgpIGVsZW1lbnQhOiBEcm9wZG93bjtcbiAgQElucHV0KCkgYm9yZGVyOiBcInNvZnRcIiB8IFwidGFnXCIgfCBcImhpZ2hsaWdodFwiIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuICBAVmlld0NoaWxkKFwiZHJvcGRvd25cIiwgeyBzdGF0aWM6IHRydWUgfSkgZHJvcGRvd24hOiBNYXRTZWxlY3Q7XG5cbiAgcHVibGljIGZpbHRlcmVkT3B0aW9uczogUmVwbGF5U3ViamVjdDxFbGVtZW50T3B0aW9uW10+ID0gbmV3IFJlcGxheVN1YmplY3Q8XG4gICAgRWxlbWVudE9wdGlvbltdXG4gID4oMSk7XG4gIHB1YmxpYyBmaWx0ZXJlZEdyb3VwczogUmVwbGF5U3ViamVjdDxFbGVtZW50R3JvdXBbXT4gPSBuZXcgUmVwbGF5U3ViamVjdDxcbiAgICBFbGVtZW50R3JvdXBbXVxuICA+KDEpO1xuICBwcm90ZWN0ZWQgZmlsdGVyZWRPcHRpb25zQ2FjaGU6IEVsZW1lbnRPcHRpb25bXSA9IFtdO1xuICBwcm90ZWN0ZWQgZmlsdGVyZWRHcm91cENhY2hlOiBFbGVtZW50R3JvdXBbXSA9IFtdO1xuICBwcm90ZWN0ZWQgX29uRGVzdHJveSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgaXNJbmRldGVybWluYXRlID0gZmFsc2U7XG4gIGlzQ2hlY2tlZCA9IGZhbHNlO1xuICBpc09wdGlvbnNHcm91cCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKCkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnNldE9wdGlvbnMoKTtcblxuICAgIGlmICh0aGlzLmVsZW1lbnQuc2VhcmNoKSB7XG4gICAgICB0aGlzLmVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sPy52YWx1ZUNoYW5nZXNcbiAgICAgICAgLy8ucGlwZSh0YWtlVW50aWwodGhpcy5fb25EZXN0cm95KSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XG4gICAgICAgICAgdGhpcy5zZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzW1wiZWxlbWVudFwiXS5wcmV2aW91c1ZhbHVlPy5jb250cm9sVHlwZSA9PT0gXCJkcm9wZG93blwiICYmXG4gICAgICBjaGFuZ2VzW1wiZWxlbWVudFwiXS5wcmV2aW91c1ZhbHVlPy5vcHRpb25zICE9PSBjaGFuZ2VzW1wiZWxlbWVudFwiXS5jdXJyZW50VmFsdWU/Lm9wdGlvbnNcbiAgICApIHtcbiAgICAgIHRoaXMuZWxlbWVudC5vcHRpb25zID0gY2hhbmdlc1tcImVsZW1lbnRcIl0uY3VycmVudFZhbHVlLm9wdGlvbnM7XG4gICAgICB0aGlzLnNldE9wdGlvbnMoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9vbkRlc3Ryb3kubmV4dCgpO1xuICAgIHRoaXMuX29uRGVzdHJveS5jb21wbGV0ZSgpO1xuICB9XG5cbiAgc2V0T3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLmlzT3B0aW9uc0dyb3VwID0gdGhpcy5pc0VsZW1lbnRHcm91cCh0aGlzLmVsZW1lbnQub3B0aW9uc1swXSk7XG5cbiAgICBpZiAodGhpcy5pc09wdGlvbnNHcm91cCkge1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUgPSAodGhpcy5lbGVtZW50XG4gICAgICAgIC5vcHRpb25zIGFzIEVsZW1lbnRHcm91cFtdKS5zbGljZSgpO1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3Vwcy5uZXh0KHRoaXMuZmlsdGVyZWRHcm91cENhY2hlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNDYWNoZSA9ICh0aGlzLmVsZW1lbnRcbiAgICAgICAgLm9wdGlvbnMgYXMgRWxlbWVudE9wdGlvbltdKS5zbGljZSgpO1xuICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMubmV4dCh0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9uc0Zyb21Hcm91cChcbiAgICBncm91cDogRWxlbWVudEdyb3VwLFxuICAgIHZhbHVlOiBzdHJpbmdcbiAgKTogRWxlbWVudE9wdGlvbltdIHtcbiAgICBjb25zdCBmaWx0ZXJWYWx1ZSA9IHZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG5cbiAgICByZXR1cm4gZ3JvdXAubGFiZWwudG9Mb2NhbGVMb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXJWYWx1ZSlcbiAgICAgID8gZ3JvdXAub3B0aW9uc1xuICAgICAgOiBncm91cC5vcHRpb25zLmZpbHRlcigoaXRlbSkgPT5cbiAgICAgICAgICBpdGVtLnZhbHVlLnRvTG9jYWxlTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpXG4gICAgICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZmlsdGVyT3B0aW9ucygpIHtcbiAgICBpZiAoIXRoaXMuZWxlbWVudC5vcHRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIGdldCB0aGUgc2VhcmNoIGtleXdvcmRcbiAgICBsZXQgc2VhcmNoID0gdGhpcy5lbGVtZW50LnNlYXJjaD8uZm9ybUNvbnRyb2w/LnZhbHVlO1xuXG4gICAgaWYgKHRoaXMuaXNPcHRpb25zR3JvdXApIHtcbiAgICAgIGNvbnN0IGdyb3VwcyA9IHRoaXMuZWxlbWVudC5vcHRpb25zIGFzIEVsZW1lbnRHcm91cFtdO1xuICAgICAgdGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUgPSBncm91cHNcbiAgICAgICAgLm1hcCgoZ3JvdXA6IEVsZW1lbnRHcm91cCkgPT4gKHtcbiAgICAgICAgICBsYWJlbDogZ3JvdXAubGFiZWwsXG4gICAgICAgICAgb3B0aW9uczogdGhpcy5maWx0ZXJPcHRpb25zRnJvbUdyb3VwKGdyb3VwLCBzZWFyY2gpLFxuICAgICAgICB9KSlcbiAgICAgICAgLmZpbHRlcigoZ3JvdXApID0+IGdyb3VwLm9wdGlvbnMubGVuZ3RoID4gMCk7XG4gICAgICB0aGlzLmZpbHRlcmVkR3JvdXBzLm5leHQodGhpcy5maWx0ZXJlZEdyb3VwQ2FjaGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5lbGVtZW50Lm9wdGlvbnMgYXMgRWxlbWVudE9wdGlvbltdO1xuICAgICAgaWYgKCFzZWFyY2gpIHtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnNDYWNoZSA9IG9wdGlvbnMuc2xpY2UoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZE9wdGlvbnMubmV4dCh0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgLy8gZmlsdGVyIHRoZSBvcHRpb25zXG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlID0gb3B0aW9ucy5maWx0ZXIoXG4gICAgICAgIChvcHRpb246IEVsZW1lbnRPcHRpb24pID0+XG4gICAgICAgICAgb3B0aW9uLnZhbHVlLnRvTG93ZXJDYXNlKCkuaW5kZXhPZihzZWFyY2gpID4gLTFcbiAgICAgICk7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9ucy5uZXh0KHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRUb2dnbGVBbGxDaGVja2JveFN0YXRlKCkge1xuICAgIGxldCBmaWx0ZXJlZExlbmd0aCA9IDA7XG4gICAgbGV0IHNlYXJjaCA9IHRoaXMuZWxlbWVudC5zZWFyY2g/LmZvcm1Db250cm9sPy52YWx1ZTtcblxuICAgIGlmIChzZWFyY2ggJiYgc2VhcmNoLnZhbHVlKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkT3B0aW9uc0NhY2hlLmZvckVhY2goKGVsKSA9PiB7XG4gICAgICAgIGlmIChzZWFyY2gudmFsdWUudG9Mb3dlckNhc2UoKS5pbmRleE9mKGVsKSA+IC0xKSB7XG4gICAgICAgICAgZmlsdGVyZWRMZW5ndGgrKztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLmlzSW5kZXRlcm1pbmF0ZSA9XG4gICAgICAgIGZpbHRlcmVkTGVuZ3RoID4gMCAmJiBmaWx0ZXJlZExlbmd0aCA8IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgICAgdGhpcy5pc0NoZWNrZWQgPVxuICAgICAgICBmaWx0ZXJlZExlbmd0aCA+IDAgJiZcbiAgICAgICAgZmlsdGVyZWRMZW5ndGggPT09IHRoaXMuZmlsdGVyZWRPcHRpb25zQ2FjaGUubGVuZ3RoO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVNlbGVjdEFsbChzZWxlY3RBbGxWYWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zLnN1YnNjcmliZSgob3B0aW9uczogRWxlbWVudE9wdGlvbltdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShvcHRpb25zKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2w/LnBhdGNoVmFsdWUoW10pO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuZmlsdGVyZWRHcm91cHMuc3Vic2NyaWJlKChncm91cHM6IEVsZW1lbnRHcm91cFtdKSA9PiB7XG4gICAgICBpZiAoc2VsZWN0QWxsVmFsdWUpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShcbiAgICAgICAgICBncm91cHMubWFwKChncm91cDogRWxlbWVudEdyb3VwKSA9PiBncm91cC5vcHRpb25zKVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbD8ucGF0Y2hWYWx1ZShbXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBpc0VsZW1lbnRHcm91cChvYmplY3Q6IEVsZW1lbnRHcm91cCB8IEVsZW1lbnRPcHRpb24pOiBvYmplY3QgaXMgRWxlbWVudEdyb3VwIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLmxhYmVsICE9PSB1bmRlZmluZWQgJiZcbiAgICAgICAgKG9iamVjdCBhcyBFbGVtZW50R3JvdXApLm9wdGlvbnMgIT09IHVuZGVmaW5lZFxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgY29tcGFyZUZuKGMxOiBhbnksIGMyOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gYzEgJiYgYzIgPyBjMS5rZXkgPT09IGMyLmtleSA6IGMxID09PSBjMjtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImVsZW1lbnRcIj5cbiAgPGxhYmVsICpuZ0lmPVwiZWxlbWVudC5sYWJlbFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fbGFiZWxcIj5cbiAgICB7eyBlbGVtZW50LmxhYmVsIH19XG4gIDwvbGFiZWw+XG4gIDxkaXYgY2xhc3M9XCJtYXBhLWZvcm0tLWlubGluZVwiPlxuICAgIDxtYXQtZm9ybS1maWVsZFxuICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVcIlxuICAgICAgY2xhc3M9XCJtYXBhLWRyb3Bkb3duXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1oaWdobGlnaHRdPVwiYm9yZGVyID09PSAnaGlnaGxpZ2h0J1wiXG4gICAgICBbY2xhc3MubWFwYS1kcm9wZG93bi0tc29mdC1ib3JkZXJdPVwiYm9yZGVyID09PSAnc29mdCdcIlxuICAgICAgW2NsYXNzLm1hcGEtZHJvcGRvd24tLXRhZ109XCJib3JkZXIgPT09ICd0YWcnXCJcbiAgICAgIFtjbGFzcy5tYXBhLWRyb3Bkb3duLS1sYWJlbGVkXT1cIiEhZWxlbWVudC5sYWJlbFwiXG4gICAgPlxuICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgI2Ryb3Bkb3duXG4gICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtQ29udHJvbFwiXG4gICAgICAgIFttdWx0aXBsZV09XCJlbGVtZW50Lm11bHRpcGxlXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVsZW1lbnQucGxhY2Vob2xkZXIgfHwgJydcIlxuICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUZuXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJlbGVtZW50LnNlYXJjaFwiIGNsYXNzPVwibWFwYS1kcm9wZG93bl9fc2VhcmNoXCI+XG4gICAgICAgICAgPG5neC1tYXQtc2VsZWN0LXNlYXJjaFxuICAgICAgICAgICAgKm5nSWY9XCJlbGVtZW50LnNlYXJjaC5mb3JtQ29udHJvbFwiXG4gICAgICAgICAgICBbc2hvd1RvZ2dsZUFsbENoZWNrYm94XT1cInRydWVcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVsZW1lbnQuc2VhcmNoLmZvcm1Db250cm9sXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlckxhYmVsXT1cImVsZW1lbnQuc2VhcmNoLnBsYWNlaG9sZGVyIHx8ICcnXCJcbiAgICAgICAgICAgIGkxOG4tcGxhY2Vob2xkZXJMYWJlbFxuICAgICAgICAgICAgW25vRW50cmllc0ZvdW5kTGFiZWxdPVwiZWxlbWVudC5zZWFyY2gubm9FbnRyaWVzRm91bmRMYWJlbCB8fCAnJ1wiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hJbmRldGVybWluYXRlXT1cImlzSW5kZXRlcm1pbmF0ZVwiXG4gICAgICAgICAgICBbdG9nZ2xlQWxsQ2hlY2tib3hDaGVja2VkXT1cImlzQ2hlY2tlZFwiXG4gICAgICAgICAgICAodG9nZ2xlQWxsKT1cInRvZ2dsZVNlbGVjdEFsbCgkZXZlbnQpXCJcbiAgICAgICAgICA+PC9uZ3gtbWF0LXNlbGVjdC1zZWFyY2g+XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNPcHRpb25zR3JvdXA7IGVsc2UgaXNFbGVtZW50T3B0aW9uc1wiPlxuICAgICAgICAgIDxtYXQtb3B0Z3JvdXBcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBncm91cCBvZiBmaWx0ZXJlZEdyb3VwcyB8IGFzeW5jXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJncm91cC5sYWJlbFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBncm91cC5vcHRpb25zXCIgW3ZhbHVlXT1cIm9wdGlvblwiPlxuICAgICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICAgICAgICA8L21hdC1vcHRncm91cD5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjaXNFbGVtZW50T3B0aW9ucz5cbiAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBmaWx0ZXJlZE9wdGlvbnMgfCBhc3luY1wiXG4gICAgICAgICAgICBbdmFsdWVdPVwib3B0aW9uXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBvcHRpb24udmFsdWUgfX1cbiAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5yZXF1aXJlZCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWlubGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2NwZicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jcGYgfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignY25waicpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5jbnBqIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ2VtYWlsJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/LmVtYWlsIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ3BhdHRlcm4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ucGF0dGVybiB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtaW4nKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWluIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtQ29udHJvbD8uaGFzRXJyb3IoJ21heCcpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuZXJyb3JzPy5tYXggfX1cbiAgICAgIDwvbWF0LWVycm9yPlxuICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm1Db250cm9sPy5oYXNFcnJvcignbWluTGVuZ3RoJylcIj5cbiAgICAgICAge3sgZWxlbWVudC5lcnJvcnM/Lm1pbkxlbmd0aCB9fVxuICAgICAgPC9tYXQtZXJyb3I+XG4gICAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybUNvbnRyb2w/Lmhhc0Vycm9yKCdtYXhMZW5ndGgnKVwiPlxuICAgICAgICB7eyBlbGVtZW50LmVycm9ycz8ubWF4TGVuZ3RoIH19XG4gICAgICA8L21hdC1lcnJvcj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDxkaXYgKm5nSWY9XCJlbGVtZW50LmFjdGlvbkJ1dHRvblwiIGNsYXNzPVwibWFwYS1mb3JtLS1hY3Rpb25cIj5cbiAgICAgIDxtYXBhLWJ1dHRvbiBjb2xvcj1cImJhc2ljXCIgKGNsaWNrKT1cImVsZW1lbnQuYWN0aW9uQnV0dG9uLmFjdGlvbi5lbWl0KHRydWUpXCI+XG4gICAgICAgIHt7IGVsZW1lbnQuYWN0aW9uQnV0dG9uLmxhYmVsIH19XG4gICAgICA8L21hcGEtYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19