ontimize-web-ngx 15.0.0-beta.2 → 15.0.0-beta.4

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 (41) hide show
  1. package/esm2020/lib/components/app-sidenav/o-app-sidenav.component.mjs +2 -2
  2. package/esm2020/lib/components/contextmenu/context-menu/o-wrapper-content-menu/o-wrapper-content-menu.component.mjs +3 -3
  3. package/esm2020/lib/components/dual-list-selector/o-dual-list-selector.component.mjs +3 -3
  4. package/esm2020/lib/components/grid/o-grid.component.mjs +5 -5
  5. package/esm2020/lib/components/input/combo/o-combo.component.mjs +2 -2
  6. package/esm2020/lib/components/input/currency-input/o-currency-input.component.mjs +3 -11
  7. package/esm2020/lib/components/input/phone-input/o-phone-input.component.mjs +3 -3
  8. package/esm2020/lib/components/input/search-input/o-search-input.component.mjs +2 -2
  9. package/esm2020/lib/components/list/list-item/o-list-item.component.mjs +2 -2
  10. package/esm2020/lib/components/list/o-list.component.mjs +5 -14
  11. package/esm2020/lib/components/list/renderers/card/o-list-item-card.component.mjs +3 -3
  12. package/esm2020/lib/components/list/renderers/card-image/o-list-item-card-image.component.mjs +3 -3
  13. package/esm2020/lib/components/table/extensions/dialog/apply-configuration/o-table-apply-configuration-dialog.component.mjs +3 -3
  14. package/esm2020/lib/components/table/extensions/dialog/filter-by-column/o-table-filter-by-column-data-dialog.component.mjs +2 -2
  15. package/esm2020/lib/components/table/extensions/dialog/store-configuration/o-table-store-configuration-dialog.component.mjs +3 -3
  16. package/esm2020/lib/components/table/extensions/dialog/visible-columns/o-table-visible-columns-dialog.component.mjs +3 -3
  17. package/esm2020/lib/components/table/extensions/header/table-menu/o-table-menu.component.mjs +3 -3
  18. package/esm2020/lib/components/table/extensions/header/table-quickfilter/o-table-quickfilter.component.mjs +3 -3
  19. package/esm2020/lib/components/table/o-table.component.mjs +8 -8
  20. package/esm2020/lib/i18n/i18n.mjs +2 -2
  21. package/esm2020/lib/layouts/form-layout/tabgroup/o-form-layout-tabgroup.component.mjs +2 -2
  22. package/esm2020/lib/services/local-storage.service.mjs +5 -2
  23. package/esm2020/lib/shared/components/filter/load-filter/o-load-filter-dialog.component.mjs +3 -3
  24. package/esm2020/lib/util/currencyUtil.mjs +53 -0
  25. package/esm2020/lib/util/index.mjs +2 -1
  26. package/fesm2015/ontimize-web-ngx.mjs +109 -70
  27. package/fesm2015/ontimize-web-ngx.mjs.map +1 -1
  28. package/fesm2020/ontimize-web-ngx.mjs +108 -70
  29. package/fesm2020/ontimize-web-ngx.mjs.map +1 -1
  30. package/lib/components/input/currency-input/o-currency-input.component.d.ts +7 -0
  31. package/lib/components/list/o-list.component.d.ts +1 -3
  32. package/lib/util/currencyUtil.d.ts +41 -0
  33. package/lib/util/index.d.ts +1 -0
  34. package/ontimize.scss +2 -72
  35. package/package.json +1 -1
  36. package/theme.scss +147 -163
  37. package/theming/addons/report-on-demand.scss +5 -1
  38. package/theming/ontimize-style-v8.scss +3 -2
  39. package/theming/styles/density.scss +52 -23
  40. package/theming/styles/ontimize-v8/o-form-field-style.scss +3 -2
  41. package/theming/styles/ontimize-v8/o-table-style.scss +1 -1
@@ -286,12 +286,12 @@ export class OPhoneInputComponent extends OFormDataComponent {
286
286
  }
287
287
  }
288
288
  OPhoneInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OPhoneInputComponent, deps: [{ token: i1.CountryCode }, { token: forwardRef(() => OFormComponent), optional: true }, { token: i0.ElementRef }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
289
- OPhoneInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OPhoneInputComponent, selector: "o-phone-input", inputs: { gap: "gap", countries: "countries" }, outputs: { countryChange: "countryChange", onPhoneDataChange: "onPhoneDataChange" }, host: { properties: { "class.o-phone-input": "true" } }, providers: [CountryCode], viewQueries: [{ propertyName: "countryList", first: true, predicate: ["countryList"], descendants: true }, { propertyName: "matInputRef", first: true, predicate: ["matInputRef"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" fxLayout=\"row wrap\" [fxLayoutGap]=\"gap +' grid'\">\n <mat-form-field class=\"mat-form-phone\" [floatLabel]=\"floatLabel\" [appearance]=\"appearance\" [class.read-only]=\"isReadOnly\" fxFlex.xs [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"selectedCountry\" (selectionChange)=\"onCountrySelect($event)\" [disabled]=\"!enabled\">\n <mat-option *ngFor=\"let country of allCountries\" [value]=\"country\"> {{country.name}} +{{country.dialCode}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field [hideRequiredMarker]=\"hideRequiredMarker\" [class.custom-width]=\"hasCustomWidth\" class=\"icon-field\" [appearance]=\"appearance\"\n fxFlex>\n <input #matInputRef matInput type=\"tel\" [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n (focus)=\"innerOnFocus($event)\" (blur)=\"innerOnBlur($event)\" [readonly]=\"isReadOnly\" (change)=\"onChangeEvent($event)\" [required]=\"isRequired\">\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n <mat-icon matSuffix [class.mat-disabled]=\"!enabled\" class=\"svg-icon\" svgIcon=\"ontimize:phone_outline\"></mat-icon>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('validatePhoneNumber')\">\n {{ 'FORM_VALIDATION.PHONE_FORMAT' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n</div>", styles: [".o-phone-input{overflow:hidden}.o-phone-input .read-only{pointer-events:none}.o-phone-input .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-phone-input .read-only .mdc-line-ripple:after{background-image:none}.o-phone-input .mat-mdc-form-field.icon-field{height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
289
+ OPhoneInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OPhoneInputComponent, selector: "o-phone-input", inputs: { gap: "gap", countries: "countries" }, outputs: { countryChange: "countryChange", onPhoneDataChange: "onPhoneDataChange" }, host: { properties: { "class.o-phone-input": "true" } }, providers: [CountryCode], viewQueries: [{ propertyName: "countryList", first: true, predicate: ["countryList"], descendants: true }, { propertyName: "matInputRef", first: true, predicate: ["matInputRef"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: "<div [formGroup]=\"getFormGroup()\" fxLayout=\"row wrap\" [fxLayoutGap]=\"gap +' grid'\">\n <mat-form-field class=\"mat-form-phone\" [floatLabel]=\"floatLabel\" [appearance]=\"appearance\" [class.read-only]=\"isReadOnly\" fxFlex.xs\n [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"selectedCountry\" (selectionChange)=\"onCountrySelect($event)\" [disabled]=\"!enabled\">\n <mat-option *ngFor=\"let country of allCountries\" [value]=\"country\"> {{country.name}} +{{country.dialCode}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field [hideRequiredMarker]=\"hideRequiredMarker\" [class.custom-width]=\"hasCustomWidth\" class=\"icon-field\" [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\" fxFlex>\n <input #matInputRef matInput type=\"tel\" [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n (focus)=\"innerOnFocus($event)\" (blur)=\"innerOnBlur($event)\" [readonly]=\"isReadOnly\" (change)=\"onChangeEvent($event)\" [required]=\"isRequired\">\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n <mat-icon matSuffix [class.mat-disabled]=\"!enabled\" class=\"svg-icon\" svgIcon=\"ontimize:phone_outline\"></mat-icon>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('validatePhoneNumber')\">\n {{ 'FORM_VALIDATION.PHONE_FORMAT' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n</div>\n", styles: [".o-phone-input{overflow:hidden}.o-phone-input .read-only{pointer-events:none}.o-phone-input .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-phone-input .read-only .mdc-line-ripple:after{background-image:none}.o-phone-input .mat-mdc-form-field.icon-field{height:100%}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.DefaultLayoutGapDirective, selector: " [fxLayoutGap], [fxLayoutGap.xs], [fxLayoutGap.sm], [fxLayoutGap.md], [fxLayoutGap.lg], [fxLayoutGap.xl], [fxLayoutGap.lt-sm], [fxLayoutGap.lt-md], [fxLayoutGap.lt-lg], [fxLayoutGap.lt-xl], [fxLayoutGap.gt-xs], [fxLayoutGap.gt-sm], [fxLayoutGap.gt-md], [fxLayoutGap.gt-lg]", inputs: ["fxLayoutGap", "fxLayoutGap.xs", "fxLayoutGap.sm", "fxLayoutGap.md", "fxLayoutGap.lg", "fxLayoutGap.xl", "fxLayoutGap.lt-sm", "fxLayoutGap.lt-md", "fxLayoutGap.lt-lg", "fxLayoutGap.lt-xl", "fxLayoutGap.gt-xs", "fxLayoutGap.gt-sm", "fxLayoutGap.gt-md", "fxLayoutGap.gt-lg"] }, { kind: "directive", type: i3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.OMatErrorDirective, selector: "[oMatError]", inputs: ["oMatError"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i11.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
290
290
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OPhoneInputComponent, decorators: [{
291
291
  type: Component,
292
292
  args: [{ selector: 'o-phone-input', inputs: DEFAULT_INPUTS_O_PHONE_INPUT, encapsulation: ViewEncapsulation.None, providers: [CountryCode], host: {
293
293
  '[class.o-phone-input]': 'true'
294
- }, template: "<div [formGroup]=\"getFormGroup()\" fxLayout=\"row wrap\" [fxLayoutGap]=\"gap +' grid'\">\n <mat-form-field class=\"mat-form-phone\" [floatLabel]=\"floatLabel\" [appearance]=\"appearance\" [class.read-only]=\"isReadOnly\" fxFlex.xs [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"selectedCountry\" (selectionChange)=\"onCountrySelect($event)\" [disabled]=\"!enabled\">\n <mat-option *ngFor=\"let country of allCountries\" [value]=\"country\"> {{country.name}} +{{country.dialCode}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field [hideRequiredMarker]=\"hideRequiredMarker\" [class.custom-width]=\"hasCustomWidth\" class=\"icon-field\" [appearance]=\"appearance\"\n fxFlex>\n <input #matInputRef matInput type=\"tel\" [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n (focus)=\"innerOnFocus($event)\" (blur)=\"innerOnBlur($event)\" [readonly]=\"isReadOnly\" (change)=\"onChangeEvent($event)\" [required]=\"isRequired\">\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n <mat-icon matSuffix [class.mat-disabled]=\"!enabled\" class=\"svg-icon\" svgIcon=\"ontimize:phone_outline\"></mat-icon>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('validatePhoneNumber')\">\n {{ 'FORM_VALIDATION.PHONE_FORMAT' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n</div>", styles: [".o-phone-input{overflow:hidden}.o-phone-input .read-only{pointer-events:none}.o-phone-input .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-phone-input .read-only .mdc-line-ripple:after{background-image:none}.o-phone-input .mat-mdc-form-field.icon-field{height:100%}\n"] }]
294
+ }, template: "<div [formGroup]=\"getFormGroup()\" fxLayout=\"row wrap\" [fxLayoutGap]=\"gap +' grid'\">\n <mat-form-field class=\"mat-form-phone\" [floatLabel]=\"floatLabel\" [appearance]=\"appearance\" [class.read-only]=\"isReadOnly\" fxFlex.xs\n [subscriptSizing]=\"subscriptSizing\">\n <mat-label *ngIf=\"labelVisible\">{{ olabel | oTranslate }}</mat-label>\n <mat-select [value]=\"selectedCountry\" (selectionChange)=\"onCountrySelect($event)\" [disabled]=\"!enabled\">\n <mat-option *ngFor=\"let country of allCountries\" [value]=\"country\"> {{country.name}} +{{country.dialCode}}</mat-option>\n </mat-select>\n </mat-form-field>\n <mat-form-field [hideRequiredMarker]=\"hideRequiredMarker\" [class.custom-width]=\"hasCustomWidth\" class=\"icon-field\" [appearance]=\"appearance\"\n [subscriptSizing]=\"subscriptSizing\" fxFlex>\n <input #matInputRef matInput type=\"tel\" [id]=\"getAttribute()\" [formControlName]=\"getAttribute()\" [placeholder]=\"placeHolder\"\n (focus)=\"innerOnFocus($event)\" (blur)=\"innerOnBlur($event)\" [readonly]=\"isReadOnly\" (change)=\"onChangeEvent($event)\" [required]=\"isRequired\">\n <button type=\"button\" *ngIf=\"showClearButton\" matSuffix mat-icon-button (click)=\"onClickClearValue($event)\">\n <mat-icon svgIcon=\"ontimize:close\"></mat-icon>\n </button>\n <mat-icon matSuffix [class.mat-disabled]=\"!enabled\" class=\"svg-icon\" svgIcon=\"ontimize:phone_outline\"></mat-icon>\n <mat-error *oMatError=\"hasError('required')\">\n {{ 'FORM_VALIDATION.REQUIRED' | oTranslate }}\n </mat-error>\n <mat-error *oMatError=\"hasError('validatePhoneNumber')\">\n {{ 'FORM_VALIDATION.PHONE_FORMAT' | oTranslate }}\n </mat-error>\n <mat-error *ngFor=\"let oError of getActiveOErrors()\">\n {{ oError.text | oTranslate }}\n </mat-error>\n </mat-form-field>\n</div>\n", styles: [".o-phone-input{overflow:hidden}.o-phone-input .read-only{pointer-events:none}.o-phone-input .read-only .mat-mdc-select-arrow-wrapper{visibility:hidden}.o-phone-input .read-only .mdc-line-ripple:after{background-image:none}.o-phone-input .mat-mdc-form-field.icon-field{height:100%}\n"] }]
295
295
  }], ctorParameters: function () { return [{ type: i1.CountryCode }, { type: i13.OFormComponent, decorators: [{
296
296
  type: Optional
297
297
  }, {
@@ -310,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
310
310
  type: ViewChild,
311
311
  args: ['matInputRef', { read: ElementRef, static: true }]
312
312
  }] } });
313
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1waG9uZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9waG9uZS1pbnB1dC9vLXBob25lLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3Bob25lLWlucHV0L28tcGhvbmUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxLQUFLLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFHTCxrQkFBa0IsRUFDbkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7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TUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzRyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7WUFDL0MsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOztpSEFwVlUsb0JBQW9CLDZDQXlDVCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO3FHQXpDM0Msb0JBQW9CLHNPQUxwQixDQUFDLFdBQVcsQ0FBQyw4TUFXVSxVQUFVLGtFQzdEOUMsZ3lEQXlCTTsyRkQ4Qk8sb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGVBQWUsVUFHakIsNEJBQTRCLGlCQUNyQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsV0FBVyxDQUFDLFFBQ2xCO3dCQUNKLHVCQUF1QixFQUFFLE1BQU07cUJBQ2hDOzswQkEyQ0UsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDOzRGQXhDN0MsU0FBUztzQkFBakIsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUNZLGlCQUFpQjtzQkFBbkMsTUFBTTtnQkFFbUIsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUM4QyxXQUFXO3NCQUFoRixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0ICogYXMgbHBuIGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5cbmltcG9ydCB7IEZvcm1WYWx1ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9mb3JtLXZhbHVlLW9wdGlvbnMudHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMvby12YWxpZGF0b3JzJztcbmltcG9ydCB7IE9Gb3JtVmFsdWUgfSBmcm9tICcuLi8uLi9mb3JtL28tZm9ybS12YWx1ZSc7XG5pbXBvcnQgeyBPRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBERUZBVUxUX0lOUFVUU19PX0ZPUk1fREFUQV9DT01QT05FTlQsXG4gIERFRkFVTFRfT1VUUFVUU19PX0ZPUk1fREFUQV9DT01QT05FTlQsXG4gIE9Gb3JtRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi8uLi9vLWZvcm0tZGF0YS1jb21wb25lbnQuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1Db250cm9sIH0gZnJvbSAnLi4vby1mb3JtLWNvbnRyb2wuY2xhc3MnO1xuaW1wb3J0IHsgQ291bnRyeUNvZGUgfSBmcm9tICcuL2RhdGEvY291bnRyeS1jb2RlJztcbmltcG9ydCB7IENvdW50cnlJU08gfSBmcm9tICcuL2VudW1zL2NvdW50cnktaXNvLmVudW0nO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJGb3JtYXQgfSBmcm9tICcuL2VudW1zL3Bob25lLW51bWJlci1mb3JtYXQuZW51bSc7XG5pbXBvcnQgeyBPUGhvbmVJbnB1dERhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMvY2hhbmdlLWRhdGEnO1xuaW1wb3J0IHsgQ291bnRyeSB9IGZyb20gJy4vbW9kZWwvY291bnRyeS5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1BIT05FX0lOUFVUID0gW1xuICAvL2dhcDogU3BlY2lmeSBnYXAgYmV0d2VlbiBmaWVsZHMgaW4gcHhcbiAgJ2dhcCdcbl07XG5cbmNvbnN0IFBIT05FX1BSRUZJWCA9ICcrJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXBob25lLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tcGhvbmUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXBob25lLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19QSE9ORV9JTlBVVCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQ291bnRyeUNvZGVdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXBob25lLWlucHV0XSc6ICd0cnVlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE9QaG9uZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgT0Zvcm1EYXRhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY291bnRyaWVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIEBPdXRwdXQoKSByZWFkb25seSBjb3VudHJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgb25QaG9uZURhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE9QaG9uZUlucHV0RGF0YT4oKTtcblxuICBAVmlld0NoaWxkKCdjb3VudHJ5TGlzdCcpIGNvdW50cnlMaXN0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtYXRJbnB1dFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgbWF0SW5wdXRSZWYhOiBFbGVtZW50UmVmO1xuICBwdWJsaWMgZ2FwID0gJzE0cHgnO1xuXG4gIF9zZWxlY3RlZENvdW50cnk6IENvdW50cnkgPSB7XG4gICAgYXJlYUNvZGVzOiB1bmRlZmluZWQsXG4gICAgZGlhbENvZGU6ICcnLFxuICAgIGh0bWxJZDogJycsXG4gICAgZmxhZ0NsYXNzOiAnJyxcbiAgICBpc28yOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICBwbGFjZUhvbGRlcjogJycsXG4gICAgcHJpb3JpdHk6IDAsXG4gIH07XG5cbiAgc2V0IHNlbGVjdGVkQ291bnRyeSh2YWx1ZTogQ291bnRyeSkge1xuICAgIHRoaXMuX3NlbGVjdGVkQ291bnRyeSA9IHZhbHVlO1xuICAgIHRoaXMucGxhY2VIb2xkZXIgPSB0aGlzLnJlc29sdmVQbGFjZWhvbGRlcigpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkQ291bnRyeSgpOiBDb3VudHJ5IHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRDb3VudHJ5O1xuICB9XG5cbiAgYWxsQ291bnRyaWVzOiBBcnJheTxDb3VudHJ5PiA9IFtdO1xuXG4gIHN0YXRlcyA9IENvdW50cnlJU087XG4gIHNlbGVjdGVkU3RhdGVzID0gdGhpcy5zdGF0ZXM7XG5cbiAgLy8gSGFzIHRvIGJlICdhbnknIHRvIHByZXZlbnQgYSBuZWVkIHRvIGluc3RhbGwgQHR5cGVzL2dvb2dsZS1saWJwaG9uZW51bWJlciBieSB0aGUgcGFja2FnZSB1c2VyLi4uXG4gIHByb3RlY3RlZCBwaG9uZVV0aWw6IGFueSA9IGxwbi5QaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcbiAgcHJvdGVjdGVkIHNlcGFyYXRlRGlhbENvZGUgPSB0cnVlO1xuICBwcm90ZWN0ZWQgbnVtYmVyRm9ybWF0OiBQaG9uZU51bWJlckZvcm1hdCA9IFBob25lTnVtYmVyRm9ybWF0LkludGVybmF0aW9uYWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb3VudHJ5Q29kZURhdGE6IENvdW50cnlDb2RlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPRm9ybUNvbXBvbmVudCkpIGZvcm06IE9Gb3JtQ29tcG9uZW50LFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihmb3JtLCBlbFJlZiwgaW5qZWN0b3IpO1xuICAgIHRoaXMuZmV0Y2hDb3VudHJ5RGF0YSgpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVDb3VudHJ5RGF0YSgpO1xuICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woKSBhcyBPRm9ybUNvbnRyb2w7XG4gICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgIGZvcm1Db250cm9sLmdldFZhbHVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDAgJiYgc2VsZi5zZWxlY3RlZENvdW50cnkgJiYgc2VsZi5zZWxlY3RlZENvdW50cnkuZGlhbENvZGUpIHtcbiAgICAgICAgICByZXR1cm4gYCske3NlbGYuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlfSAke3RoaXMudmFsdWV9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLm9JbnB1dHNPcHRpb25zLmljb25Db2xvciA9PT0gQ29kZXMuT19JTlBVVFNfT1BUSU9OU19DT0xPUl9BQ0NFTlQpIHtcbiAgICAgIGNvbnN0IG1hdEZvcm1GaWVsZEVMID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXQtZm9ybS1maWVsZCcpWzFdO1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKG1hdEZvcm1GaWVsZEVMKSkge1xuICAgICAgICBtYXRGb3JtRmllbGRFTC5jbGFzc0xpc3QuYWRkKCdhY2NlbnQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkT250aW1pemVDdXN0b21BcHBlYXJhbmNlQ2xhc3MoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmVsUmVmKSB7XG4gICAgICAgIGNvbnN0IG1hdEZvcm1GaWVsZEVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21hdC1mb3JtLWZpZWxkJyk7XG4gICAgICAgIG1hdEZvcm1GaWVsZEVsLmZvckVhY2gobWF0Rm9ybSA9PiB7XG4gICAgICAgICAgbWF0Rm9ybS5jbGFzc0xpc3QuYWRkKCdtYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW9udGltaXplJyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IGFueSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKCkgYXMgT0Zvcm1Db250cm9sO1xuICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuIGZvcm1Db250cm9sLmdldFZhbHVlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVzb2x2ZVZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHN1cGVyLnJlc29sdmVWYWxpZGF0b3JzKCk7XG4gICAgY29uc3QgY3JlYXRlUGhvbmVWYWxpZGF0b3IgPSAoKCkgPT4ge1xuICAgICAgcmV0dXJuIE9WYWxpZGF0b3JzLnBob25lVmFsaWRhdG9yKHRoaXMuZ2V0Rm9ybUNvbnRyb2woKSwgdGhpcy5nZXRTZWxlY3RlZENvdW50cnlJc28yKCkpO1xuICAgIH0pO1xuICAgIHZhbGlkYXRvcnMucHVzaChjcmVhdGVQaG9uZVZhbGlkYXRvcik7XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBvbkZvcm1Db250cm9sQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXcgT0Zvcm1WYWx1ZSgpO1xuICAgIH1cbiAgICB0aGlzLmVuc3VyZU9Gb3JtVmFsdWUodmFsdWUpO1xuICAgIHRoaXMuZW5zdXJlUGhvbmVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRGb3JtVmFsdWUodmFsOiBhbnksIG9wdGlvbnM/OiBGb3JtVmFsdWVPcHRpb25zLCBzZXREaXJ0eTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgbGV0IHsgY291bnRyeURpYWxDb2RlLCBudW1iZXIgfSA9IHRoaXMuZ2V0U2VwYXJhdGVkVmFsdWVzKHZhbCk7XG4gICAgbGV0IGNvdW50cnkgPSB0aGlzLmdldENvdW50cnlCeURpYWxDb2RlKGNvdW50cnlEaWFsQ29kZSk7XG4gICAgY29uc3QgcGFyc2VkID0gdGhpcy5nZXRQYXJzZWROdW1iZXIobnVtYmVyLCBjb3VudHJ5ID8gY291bnRyeS5pc28yIDogdW5kZWZpbmVkKTtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHBhcnNlZCkpIHtcbiAgICAgIG51bWJlciA9IHVuZGVmaW5lZDtcbiAgICAgIGNvdW50cnkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICB0aGlzLmVuc3VyZU9Gb3JtVmFsdWUobnVtYmVyKTtcbiAgICBpZiAodGhpcy5fZkNvbnRyb2wpIHtcbiAgICAgIHRoaXMuX2ZDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUudmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKHNldERpcnR5KSB7XG4gICAgICAgIHRoaXMuX2ZDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fZkNvbnRyb2wuaW52YWxpZCAmJiAhdGhpcy5mb3JtLmlzSW5JbnNlcnRNb2RlKCkpIHtcbiAgICAgICAgdGhpcy5fZkNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9sZFZhbHVlID0gdGhpcy52YWx1ZS52YWx1ZTtcbiAgfVxuXG4gIG9uQ291bnRyeVNlbGVjdCh2YWx1ZTogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgY29uc3QgY291bnRyeTogQ291bnRyeSA9IHZhbHVlLnZhbHVlXG4gICAgdGhpcy5jb3VudHJ5Q2hhbmdlLmVtaXQoY291bnRyeSk7XG4gICAgdGhpcy5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICBpZiAodGhpcy5tYXRJbnB1dFJlZiAmJiB0aGlzLm1hdElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm1hdElucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0sIDApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlubmVyT25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5pbm5lck9uQmx1cihldmVudCk7XG4gICAgaWYgKHRoaXMuX2ZDb250cm9sKSB7XG4gICAgICB0aGlzLl9mQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2VsZWN0ZWRDb3VudHJ5SXNvMigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkQ291bnRyeSA/IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUNvdW50cnlEYXRhKCkge1xuICAgIGlmICh0aGlzLmNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PiB0aGlzLmNvdW50cmllcy5pbmNsdWRlcyhjLmlzbzIpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5zdXJlUGhvbmVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgbnVtYmVyID0gdGhpcy5nZXRQYXJzZWROdW1iZXIodmFsdWUsIHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5SXNvMigpKTtcbiAgICBpZiAobnVtYmVyKSB7XG4gICAgICBjb25zdCBpbnRsTm8gPSBudW1iZXJcbiAgICAgICAgPyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTClcbiAgICAgICAgOiAnJztcbiAgICAgIGlmIChpbnRsTm8pIHtcbiAgICAgICAgdGhpcy52YWx1ZS52YWx1ZSA9IHRoaXMucmVtb3ZlRGlhbENvZGUoaW50bE5vKTtcbiAgICAgICAgdGhpcy5lbWl0UGhvbmVJbnB1dERhdGEoaW50bE5vLCBudW1iZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb3VudHJ5QnlEaWFsQ29kZShjb3VudHJ5RGlhbENvZGU6IGFueSk6IENvdW50cnkge1xuICAgIGlmIChjb3VudHJ5RGlhbENvZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvcnRDb3VudHJpZXMoKS5maW5kKChjKSA9PiBjLmRpYWxDb2RlID09PSBjb3VudHJ5RGlhbENvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHByb3RlY3RlZCBzb3J0Q291bnRyaWVzKCk6IENvdW50cnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQ291bnRyaWVzXG4gICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gICAgICB9KVxuICB9XG4gIHByb3RlY3RlZCBnZXRTZXBhcmF0ZWRWYWx1ZXModmFsdWU6IGFueSk6IHsgY291bnRyeURpYWxDb2RlOiBzdHJpbmcsIG51bWJlcjogc3RyaW5nIH0ge1xuICAgIGxldCBjb3VudHJ5RGlhbENvZGUgPSAnJ1xuICAgIGxldCBudW1iZXIgPSAodmFsdWUgaW5zdGFuY2VvZiBPRm9ybVZhbHVlID8gdmFsdWUudmFsdWUgOiB2YWx1ZSkgfHwgdW5kZWZpbmVkXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKG51bWJlcikgJiYgbnVtYmVyLnN0YXJ0c1dpdGgoUEhPTkVfUFJFRklYKSkge1xuICAgICAgY291bnRyeURpYWxDb2RlID0gbnVtYmVyLnN1YnN0cigxLCBudW1iZXIuaW5kZXhPZignICcpIC0gMSk7XG4gICAgICBudW1iZXIgPSBudW1iZXIuc3Vic3RyKGNvdW50cnlEaWFsQ29kZS5sZW5ndGggKyAyKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgY291bnRyeURpYWxDb2RlLCBudW1iZXIgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRQaG9uZUlucHV0RGF0YShpbnRsTm8/OiBzdHJpbmcsIG51bWJlcj86IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBwaG9uZUlucHV0RGF0YTogT1Bob25lSW5wdXREYXRhID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGlzbzIgPSB0aGlzLmdldFNlbGVjdGVkQ291bnRyeUlzbzIoKTtcbiAgICBpZiAoaW50bE5vICYmIG51bWJlciAmJiBpc28yKSB7XG4gICAgICBwaG9uZUlucHV0RGF0YSA9IHtcbiAgICAgICAgbnVtYmVyOiB0aGlzLnZhbHVlLnZhbHVlLFxuICAgICAgICBpbnRlcm5hdGlvbmFsTnVtYmVyOiBpbnRsTm8sXG4gICAgICAgIG5hdGlvbmFsTnVtYmVyOiBudW1iZXJcbiAgICAgICAgICA/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTClcbiAgICAgICAgICA6ICcnLFxuICAgICAgICBlMTY0TnVtYmVyOiBudW1iZXJcbiAgICAgICAgICA/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5FMTY0KVxuICAgICAgICAgIDogJycsXG4gICAgICAgIGNvdW50cnlDb2RlOiBpc28yLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIGRpYWxDb2RlOiBQSE9ORV9QUkVGSVggKyB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSxcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vblBob25lRGF0YUNoYW5nZS5lbWl0KHBob25lSW5wdXREYXRhKTtcbiAgfVxuXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBIZWxwZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC8qKlxuICAgKiBSZXR1cm5zIHBhcnNlIFBob25lTnVtYmVyIG9iamVjdC5cbiAgICogQHBhcmFtIHBob25lTnVtYmVyIHN0cmluZ1xuICAgKiBAcGFyYW0gY291bnRyeUNvZGUgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGdldFBhcnNlZE51bWJlcihcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nLFxuICAgIGNvdW50cnlDb2RlOiBzdHJpbmdcbiAgKTogbHBuLlBob25lTnVtYmVyIHtcbiAgICBsZXQgbnVtYmVyOiBscG4uUGhvbmVOdW1iZXI7XG4gICAgdHJ5IHtcbiAgICAgIG51bWJlciA9IHRoaXMucGhvbmVVdGlsLnBhcnNlKHBob25lTnVtYmVyLCBjb3VudHJ5Q29kZS50b1VwcGVyQ2FzZSgpKTtcbiAgICB9IGNhdGNoIChlKSB7IH1cbiAgICByZXR1cm4gbnVtYmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyBkaWFsY29kZSBmcm9tIHBob25lIG51bWJlciBzdHJpbmcuXG4gICAqIEBwYXJhbSBwaG9uZU51bWJlciBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlRGlhbENvZGUocGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbnVtYmVyID0gdGhpcy5nZXRQYXJzZWROdW1iZXIocGhvbmVOdW1iZXIsIHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5SXNvMigpKTtcbiAgICBwaG9uZU51bWJlciA9IHRoaXMucGhvbmVVdGlsLmZvcm1hdChcbiAgICAgIG51bWJlcixcbiAgICAgIGxwbi5QaG9uZU51bWJlckZvcm1hdFt0aGlzLm51bWJlckZvcm1hdF1cbiAgICApO1xuICAgIGlmIChwaG9uZU51bWJlci5zdGFydHNXaXRoKFBIT05FX1BSRUZJWCkgJiYgdGhpcy5zZXBhcmF0ZURpYWxDb2RlKSB7XG4gICAgICBwaG9uZU51bWJlciA9IHBob25lTnVtYmVyLnN1YnN0cmluZyhwaG9uZU51bWJlci5pbmRleE9mKCcgJykgKyAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZnRzIHRocm91Z2ggYWxsIGNvdW50cmllcyBhbmQgcmV0dXJucyBpc28gY29kZSBvZiB0aGUgcHJpbWFyeSBjb3VudHJ5XG4gICAqIGJhc2VkIG9uIHRoZSBudW1iZXIgcHJvdmlkZWQuXG4gICAqIEBwYXJhbSBjb3VudHJ5Q29kZSBjb3VudHJ5IGNvZGUgaW4gbnVtYmVyIGZvcm1hdFxuICAgKiBAcGFyYW0gbnVtYmVyIFBob25lTnVtYmVyIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb3VudHJ5SXNvQ29kZShcbiAgICBjb3VudHJ5Q29kZTogbnVtYmVyLFxuICAgIG51bWJlcjogbHBuLlBob25lTnVtYmVyXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgLy8gV2lsbCB1c2UgdGhpcyB0byBtYXRjaCBhcmVhIGNvZGUgZnJvbSB0aGUgZmlyc3QgbnVtYmVyc1xuICAgIGNvbnN0IHJhd051bWJlciA9IG51bWJlclsndmFsdWVzXyddWycyJ10udG9TdHJpbmcoKTtcbiAgICAvLyBMaXN0IG9mIGFsbCBjb3VudHJpZXMgd2l0aCBjb3VudHJ5Q29kZSAoY2FuIGJlIG1vcmUgdGhhbiBvbmUuIGUueC4gVVMsIENBLCBETywgUFIgYWxsIGhhdmUgKzEgY291bnRyeUNvZGUpXG4gICAgY29uc3QgY291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKFxuICAgICAgKGMpID0+IGMuZGlhbENvZGUgPT09IGNvdW50cnlDb2RlLnRvU3RyaW5nKClcbiAgICApO1xuICAgIC8vIE1haW4gY291bnRyeSBpcyB0aGUgY291bnRyeSwgd2hpY2ggaGFzIG5vIGFyZWFDb2RlcyBzcGVjaWZpZWQgaW4gY291bnRyeS1jb2RlLnRzIGZpbGUuXG4gICAgY29uc3QgbWFpbkNvdW50cnkgPSBjb3VudHJpZXMuZmluZCgoYykgPT4gYy5hcmVhQ29kZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgLy8gU2Vjb25kYXJ5IGNvdW50cmllcyBhcmUgYWxsIGNvdW50cmllcywgd2hpY2ggaGF2ZSBhcmVhQ29kZXMgc3BlY2lmaWVkIGluIGNvdW50cnktY29kZS50cyBmaWxlLlxuICAgIGNvbnN0IHNlY29uZGFyeUNvdW50cmllcyA9IGNvdW50cmllcy5maWx0ZXIoKGMpID0+IGMuYXJlYUNvZGVzICE9PSB1bmRlZmluZWQpO1xuICAgIGxldCBtYXRjaGVkQ291bnRyeSA9IG1haW5Db3VudHJ5ID8gbWFpbkNvdW50cnkuaXNvMiA6IHVuZGVmaW5lZDtcblxuICAgIC8qXG4gICAgICBJdGVyYXRlIG92ZXIgZWFjaCBzZWNvbmRhcnkgY291bnRyeSBhbmQgY2hlY2sgaWYgbmF0aW9uYWxOdW1iZXIgc3RhcnRzIHdpdGggYW55IG9mIGFyZWFDb2RlcyBhdmFpbGFibGUuXG4gICAgICBJZiBubyBtYXRjaGVzIGZvdW5kLCBmYWxsYmFjayB0byB0aGUgbWFpbiBjb3VudHJ5LlxuICAgICovXG4gICAgc2Vjb25kYXJ5Q291bnRyaWVzLmZvckVhY2goKGNvdW50cnkpID0+IHtcbiAgICAgIGNvdW50cnkuYXJlYUNvZGVzLmZvckVhY2goKGFyZWFDb2RlKSA9PiB7XG4gICAgICAgIGlmIChyYXdOdW1iZXIuc3RhcnRzV2l0aChhcmVhQ29kZSkpIHtcbiAgICAgICAgICBtYXRjaGVkQ291bnRyeSA9IGNvdW50cnkuaXNvMjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZENvdW50cnk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBmb3JtYXR0ZWQgZXhhbXBsZSBwaG9uZSBudW1iZXIgZnJvbSBwaG9uZVV0aWwuXG4gICAqIEBwYXJhbSBjb3VudHJ5Q29kZSBzdHJpbmdcbiAgICovXG4gIHByb3RlY3RlZCBnZXRQaG9uZU51bWJlclBsYWNlSG9sZGVyKGNvdW50cnlDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWwuZm9ybWF0KFxuICAgICAgICB0aGlzLnBob25lVXRpbC5nZXRFeGFtcGxlTnVtYmVyKGNvdW50cnlDb2RlKSxcbiAgICAgICAgbHBuLlBob25lTnVtYmVyRm9ybWF0W3RoaXMubnVtYmVyRm9ybWF0XVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJpbmcgdGhlIGxpc3QgdG8gYXZvaWQgZHVwbGljYXRlcyAoaHR0cHM6Ly9naXRodWIuY29tL3dlYmNhdDEyMzQ1L25neC1pbnRsLXRlbC1pbnB1dC9pc3N1ZXMvMjQ4KVxuICAgKi9cbiAgcHJvdGVjdGVkIGZldGNoQ291bnRyeURhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5hbGxDb3VudHJpZXMgPSBbXTtcblxuICAgIHRoaXMuY291bnRyeUNvZGVEYXRhLmFsbENvdW50cmllcy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0ge1xuICAgICAgICBuYW1lOiBjWzBdLnRvU3RyaW5nKCksXG4gICAgICAgIGlzbzI6IGNbMV0udG9TdHJpbmcoKSxcbiAgICAgICAgZGlhbENvZGU6IGNbMl0udG9TdHJpbmcoKSxcbiAgICAgICAgcHJpb3JpdHk6ICtjWzNdIHx8IDAsXG4gICAgICAgIGFyZWFDb2RlczogKGNbNF0gYXMgc3RyaW5nW10pIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgaHRtbElkOiBgaXRpLTBfX2l0ZW0tJHtjWzFdLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgZmxhZ0NsYXNzOiBgaXRpX18ke2NbMV0udG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSgpfWAsXG4gICAgICAgIHBsYWNlSG9sZGVyOiAnJyxcbiAgICAgIH07XG4gICAgICBpZiAoIXRoaXMub3BsYWNlaG9sZGVyKSB7XG4gICAgICAgIGNvdW50cnkucGxhY2VIb2xkZXIgPSB0aGlzLmdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoXG4gICAgICAgICAgY291bnRyeS5pc28yLnRvVXBwZXJDYXNlKClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzLnB1c2goY291bnRyeSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIC8vIElmIHRoZSB1c2VyIGRlZmluZWQgaXRzIG93biBwbGFjZWhvbGRlciB1c2luZyB0aGF0IGlucHV0IGl0IHdpbGwgb3ZlcnJpZGUgYW55IGNvdW50cnkgcGxhY2Vob2xkZXJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvdW50cnkgJiYgdGhpcy5zZWxlY3RlZENvdW50cnkucGxhY2VIb2xkZXIgJiYgdGhpcy5zZWxlY3RlZENvdW50cnkucGxhY2VIb2xkZXIubGVuZ3RoID4gMCkge1xuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5wbGFjZUhvbGRlcjtcbiAgICAgIGlmICh0aGlzLnNlcGFyYXRlRGlhbENvZGUpIHtcbiAgICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnJlbW92ZURpYWxDb2RlKHBsYWNlaG9sZGVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ2V0Rm9ybUdyb3VwKClcIiBmeExheW91dD1cInJvdyB3cmFwXCIgW2Z4TGF5b3V0R2FwXT1cImdhcCArJyBncmlkJ1wiPlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZm9ybS1waG9uZVwiIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIiBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW2NsYXNzLnJlYWQtb25seV09XCJpc1JlYWRPbmx5XCIgZnhGbGV4LnhzIFtzdWJzY3JpcHRTaXppbmddPVwic3Vic2NyaXB0U2l6aW5nXCI+XG4gICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsVmlzaWJsZVwiPnt7IG9sYWJlbCB8IG9UcmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LXNlbGVjdCBbdmFsdWVdPVwic2VsZWN0ZWRDb3VudHJ5XCIgKHNlbGVjdGlvbkNoYW5nZSk9XCJvbkNvdW50cnlTZWxlY3QoJGV2ZW50KVwiIFtkaXNhYmxlZF09XCIhZW5hYmxlZFwiPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGNvdW50cnkgb2YgYWxsQ291bnRyaWVzXCIgW3ZhbHVlXT1cImNvdW50cnlcIj4ge3tjb3VudHJ5Lm5hbWV9fSAre3tjb3VudHJ5LmRpYWxDb2RlfX08L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuICA8bWF0LWZvcm0tZmllbGQgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJoaWRlUmVxdWlyZWRNYXJrZXJcIiBbY2xhc3MuY3VzdG9tLXdpZHRoXT1cImhhc0N1c3RvbVdpZHRoXCIgY2xhc3M9XCJpY29uLWZpZWxkXCIgW2FwcGVhcmFuY2VdPVwiYXBwZWFyYW5jZVwiXG4gICAgZnhGbGV4PlxuICAgIDxpbnB1dCAjbWF0SW5wdXRSZWYgbWF0SW5wdXQgdHlwZT1cInRlbFwiIFtpZF09XCJnZXRBdHRyaWJ1dGUoKVwiIFtmb3JtQ29udHJvbE5hbWVdPVwiZ2V0QXR0cmlidXRlKClcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxuICAgICAgKGZvY3VzKT1cImlubmVyT25Gb2N1cygkZXZlbnQpXCIgKGJsdXIpPVwiaW5uZXJPbkJsdXIoJGV2ZW50KVwiIFtyZWFkb25seV09XCJpc1JlYWRPbmx5XCIgKGNoYW5nZSk9XCJvbkNoYW5nZUV2ZW50KCRldmVudClcIiBbcmVxdWlyZWRdPVwiaXNSZXF1aXJlZFwiPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiICpuZ0lmPVwic2hvd0NsZWFyQnV0dG9uXCIgbWF0U3VmZml4IG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25DbGlja0NsZWFyVmFsdWUoJGV2ZW50KVwiPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJvbnRpbWl6ZTpjbG9zZVwiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gICAgPG1hdC1pY29uIG1hdFN1ZmZpeCBbY2xhc3MubWF0LWRpc2FibGVkXT1cIiFlbmFibGVkXCIgY2xhc3M9XCJzdmctaWNvblwiIHN2Z0ljb249XCJvbnRpbWl6ZTpwaG9uZV9vdXRsaW5lXCI+PC9tYXQtaWNvbj5cbiAgICA8bWF0LWVycm9yICpvTWF0RXJyb3I9XCJoYXNFcnJvcigncmVxdWlyZWQnKVwiPlxuICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5SRVFVSVJFRCcgfCBvVHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3IoJ3ZhbGlkYXRlUGhvbmVOdW1iZXInKVwiPlxuICAgICAge3sgJ0ZPUk1fVkFMSURBVElPTi5QSE9ORV9GT1JNQVQnIHwgb1RyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3IgKm5nRm9yPVwibGV0IG9FcnJvciBvZiBnZXRBY3RpdmVPRXJyb3JzKClcIj5cbiAgICAgIHt7IG9FcnJvci50ZXh0IHwgb1RyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICA8L21hdC1mb3JtLWZpZWxkPlxuPC9kaXY+Il19
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1waG9uZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9vbnRpbWl6ZS13ZWItbmd4L3NyYy9saWIvY29tcG9uZW50cy9pbnB1dC9waG9uZS1pbnB1dC9vLXBob25lLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3Bob25lLWlucHV0L28tcGhvbmUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFVBQVUsRUFDVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFFTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxLQUFLLEdBQUcsTUFBTSx1QkFBdUIsQ0FBQztBQUc3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzdELE9BQU8sRUFHTCxrQkFBa0IsRUFDbkIsTUFBTSxtQ0FBbUMsQ0FBQztBQUUzQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7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TUFBTSxHQUFHLENBQUMsRUFBRTtZQUMzRyxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUM7WUFDL0MsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3pCLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ2hEO1NBQ0Y7UUFDRCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDOztpSEFwVlUsb0JBQW9CLDZDQXlDVCxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDO3FHQXpDM0Msb0JBQW9CLHNPQUxwQixDQUFDLFdBQVcsQ0FBQyw4TUFXVSxVQUFVLGtFQzdEOUMsNjBEQTJCQTsyRkQ0QmEsb0JBQW9CO2tCQVhoQyxTQUFTOytCQUNFLGVBQWUsVUFHakIsNEJBQTRCLGlCQUNyQixpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCLENBQUMsV0FBVyxDQUFDLFFBQ2xCO3dCQUNKLHVCQUF1QixFQUFFLE1BQU07cUJBQ2hDOzswQkEyQ0UsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDOzRGQXhDN0MsU0FBUztzQkFBakIsS0FBSztnQkFDYSxhQUFhO3NCQUEvQixNQUFNO2dCQUNZLGlCQUFpQjtzQkFBbkMsTUFBTTtnQkFFbUIsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUM4QyxXQUFXO3NCQUFoRixTQUFTO3VCQUFDLGFBQWEsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIEluamVjdG9yLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRTZWxlY3RDaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xuaW1wb3J0ICogYXMgbHBuIGZyb20gJ2dvb2dsZS1saWJwaG9uZW51bWJlcic7XG5cbmltcG9ydCB7IEZvcm1WYWx1ZU9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9mb3JtLXZhbHVlLW9wdGlvbnMudHlwZSc7XG5pbXBvcnQgeyBDb2RlcyB9IGZyb20gJy4uLy4uLy4uL3V0aWwvY29kZXMnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBPVmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uLy4uL3ZhbGlkYXRvcnMvby12YWxpZGF0b3JzJztcbmltcG9ydCB7IE9Gb3JtVmFsdWUgfSBmcm9tICcuLi8uLi9mb3JtL28tZm9ybS12YWx1ZSc7XG5pbXBvcnQgeyBPRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Zvcm0vby1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBERUZBVUxUX0lOUFVUU19PX0ZPUk1fREFUQV9DT01QT05FTlQsXG4gIERFRkFVTFRfT1VUUFVUU19PX0ZPUk1fREFUQV9DT01QT05FTlQsXG4gIE9Gb3JtRGF0YUNvbXBvbmVudFxufSBmcm9tICcuLi8uLi9vLWZvcm0tZGF0YS1jb21wb25lbnQuY2xhc3MnO1xuaW1wb3J0IHsgT0Zvcm1Db250cm9sIH0gZnJvbSAnLi4vby1mb3JtLWNvbnRyb2wuY2xhc3MnO1xuaW1wb3J0IHsgQ291bnRyeUNvZGUgfSBmcm9tICcuL2RhdGEvY291bnRyeS1jb2RlJztcbmltcG9ydCB7IENvdW50cnlJU08gfSBmcm9tICcuL2VudW1zL2NvdW50cnktaXNvLmVudW0nO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJGb3JtYXQgfSBmcm9tICcuL2VudW1zL3Bob25lLW51bWJlci1mb3JtYXQuZW51bSc7XG5pbXBvcnQgeyBPUGhvbmVJbnB1dERhdGEgfSBmcm9tICcuL2ludGVyZmFjZXMvY2hhbmdlLWRhdGEnO1xuaW1wb3J0IHsgQ291bnRyeSB9IGZyb20gJy4vbW9kZWwvY291bnRyeS5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBERUZBVUxUX0lOUFVUU19PX1BIT05FX0lOUFVUID0gW1xuICAvL2dhcDogU3BlY2lmeSBnYXAgYmV0d2VlbiBmaWVsZHMgaW4gcHhcbiAgJ2dhcCdcbl07XG5cbmNvbnN0IFBIT05FX1BSRUZJWCA9ICcrJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdvLXBob25lLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tcGhvbmUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9vLXBob25lLWlucHV0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogREVGQVVMVF9JTlBVVFNfT19QSE9ORV9JTlBVVCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQ291bnRyeUNvZGVdLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXBob25lLWlucHV0XSc6ICd0cnVlJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE9QaG9uZUlucHV0Q29tcG9uZW50IGV4dGVuZHMgT0Zvcm1EYXRhQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgY291bnRyaWVzOiBBcnJheTxzdHJpbmc+ID0gW107XG4gIEBPdXRwdXQoKSByZWFkb25seSBjb3VudHJ5Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxDb3VudHJ5PigpO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgb25QaG9uZURhdGFDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPE9QaG9uZUlucHV0RGF0YT4oKTtcblxuICBAVmlld0NoaWxkKCdjb3VudHJ5TGlzdCcpIGNvdW50cnlMaXN0OiBFbGVtZW50UmVmO1xuICBAVmlld0NoaWxkKCdtYXRJbnB1dFJlZicsIHsgcmVhZDogRWxlbWVudFJlZiwgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgbWF0SW5wdXRSZWYhOiBFbGVtZW50UmVmO1xuICBwdWJsaWMgZ2FwID0gJzE0cHgnO1xuXG4gIF9zZWxlY3RlZENvdW50cnk6IENvdW50cnkgPSB7XG4gICAgYXJlYUNvZGVzOiB1bmRlZmluZWQsXG4gICAgZGlhbENvZGU6ICcnLFxuICAgIGh0bWxJZDogJycsXG4gICAgZmxhZ0NsYXNzOiAnJyxcbiAgICBpc28yOiAnJyxcbiAgICBuYW1lOiAnJyxcbiAgICBwbGFjZUhvbGRlcjogJycsXG4gICAgcHJpb3JpdHk6IDAsXG4gIH07XG5cbiAgc2V0IHNlbGVjdGVkQ291bnRyeSh2YWx1ZTogQ291bnRyeSkge1xuICAgIHRoaXMuX3NlbGVjdGVkQ291bnRyeSA9IHZhbHVlO1xuICAgIHRoaXMucGxhY2VIb2xkZXIgPSB0aGlzLnJlc29sdmVQbGFjZWhvbGRlcigpO1xuICB9XG5cbiAgZ2V0IHNlbGVjdGVkQ291bnRyeSgpOiBDb3VudHJ5IHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRDb3VudHJ5O1xuICB9XG5cbiAgYWxsQ291bnRyaWVzOiBBcnJheTxDb3VudHJ5PiA9IFtdO1xuXG4gIHN0YXRlcyA9IENvdW50cnlJU087XG4gIHNlbGVjdGVkU3RhdGVzID0gdGhpcy5zdGF0ZXM7XG5cbiAgLy8gSGFzIHRvIGJlICdhbnknIHRvIHByZXZlbnQgYSBuZWVkIHRvIGluc3RhbGwgQHR5cGVzL2dvb2dsZS1saWJwaG9uZW51bWJlciBieSB0aGUgcGFja2FnZSB1c2VyLi4uXG4gIHByb3RlY3RlZCBwaG9uZVV0aWw6IGFueSA9IGxwbi5QaG9uZU51bWJlclV0aWwuZ2V0SW5zdGFuY2UoKTtcbiAgcHJvdGVjdGVkIHNlcGFyYXRlRGlhbENvZGUgPSB0cnVlO1xuICBwcm90ZWN0ZWQgbnVtYmVyRm9ybWF0OiBQaG9uZU51bWJlckZvcm1hdCA9IFBob25lTnVtYmVyRm9ybWF0LkludGVybmF0aW9uYWw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBjb3VudHJ5Q29kZURhdGE6IENvdW50cnlDb2RlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoZm9yd2FyZFJlZigoKSA9PiBPRm9ybUNvbXBvbmVudCkpIGZvcm06IE9Gb3JtQ29tcG9uZW50LFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICBzdXBlcihmb3JtLCBlbFJlZiwgaW5qZWN0b3IpO1xuICAgIHRoaXMuZmV0Y2hDb3VudHJ5RGF0YSgpO1xuICB9XG5cbiAgaW5pdGlhbGl6ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRpYWxpemVDb3VudHJ5RGF0YSgpO1xuICAgIHN1cGVyLmluaXRpYWxpemUoKTtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuZ2V0Rm9ybUNvbnRyb2woKSBhcyBPRm9ybUNvbnRyb2w7XG4gICAgaWYgKGZvcm1Db250cm9sKSB7XG4gICAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICAgIGZvcm1Db250cm9sLmdldFZhbHVlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAodGhpcy52YWx1ZSAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IDAgJiYgc2VsZi5zZWxlY3RlZENvdW50cnkgJiYgc2VsZi5zZWxlY3RlZENvdW50cnkuZGlhbENvZGUpIHtcbiAgICAgICAgICByZXR1cm4gYCske3NlbGYuc2VsZWN0ZWRDb3VudHJ5LmRpYWxDb2RlfSAke3RoaXMudmFsdWV9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLm9JbnB1dHNPcHRpb25zLmljb25Db2xvciA9PT0gQ29kZXMuT19JTlBVVFNfT1BUSU9OU19DT0xPUl9BQ0NFTlQpIHtcbiAgICAgIGNvbnN0IG1hdEZvcm1GaWVsZEVMID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdtYXQtZm9ybS1maWVsZCcpWzFdO1xuICAgICAgaWYgKFV0aWwuaXNEZWZpbmVkKG1hdEZvcm1GaWVsZEVMKSkge1xuICAgICAgICBtYXRGb3JtRmllbGRFTC5jbGFzc0xpc3QuYWRkKCdhY2NlbnQnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYWRkT250aW1pemVDdXN0b21BcHBlYXJhbmNlQ2xhc3MoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIGlmICh0aGlzLmVsUmVmKSB7XG4gICAgICAgIGNvbnN0IG1hdEZvcm1GaWVsZEVsID0gdGhpcy5lbFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoJ21hdC1mb3JtLWZpZWxkJyk7XG4gICAgICAgIG1hdEZvcm1GaWVsZEVsLmZvckVhY2gobWF0Rm9ybSA9PiB7XG4gICAgICAgICAgbWF0Rm9ybS5jbGFzc0xpc3QuYWRkKCdtYXQtZm9ybS1maWVsZC1hcHBlYXJhbmNlLW9udGltaXplJyk7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIC8vXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFZhbHVlKCk6IGFueSB7XG4gICAgY29uc3QgZm9ybUNvbnRyb2wgPSB0aGlzLmdldEZvcm1Db250cm9sKCkgYXMgT0Zvcm1Db250cm9sO1xuICAgIGlmIChmb3JtQ29udHJvbCkge1xuICAgICAgcmV0dXJuIGZvcm1Db250cm9sLmdldFZhbHVlKCk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgcmVzb2x2ZVZhbGlkYXRvcnMoKTogVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdmFsaWRhdG9yczogVmFsaWRhdG9yRm5bXSA9IHN1cGVyLnJlc29sdmVWYWxpZGF0b3JzKCk7XG4gICAgY29uc3QgY3JlYXRlUGhvbmVWYWxpZGF0b3IgPSAoKCkgPT4ge1xuICAgICAgcmV0dXJuIE9WYWxpZGF0b3JzLnBob25lVmFsaWRhdG9yKHRoaXMuZ2V0Rm9ybUNvbnRyb2woKSwgdGhpcy5nZXRTZWxlY3RlZENvdW50cnlJc28yKCkpO1xuICAgIH0pO1xuICAgIHZhbGlkYXRvcnMucHVzaChjcmVhdGVQaG9uZVZhbGlkYXRvcik7XG4gICAgcmV0dXJuIHZhbGlkYXRvcnM7XG4gIH1cblxuICBvbkZvcm1Db250cm9sQ2hhbmdlKHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBuZXcgT0Zvcm1WYWx1ZSgpO1xuICAgIH1cbiAgICB0aGlzLmVuc3VyZU9Gb3JtVmFsdWUodmFsdWUpO1xuICAgIHRoaXMuZW5zdXJlUGhvbmVWYWx1ZSh2YWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHZhbHVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRGb3JtVmFsdWUodmFsOiBhbnksIG9wdGlvbnM/OiBGb3JtVmFsdWVPcHRpb25zLCBzZXREaXJ0eTogYm9vbGVhbiA9IGZhbHNlKTogdm9pZCB7XG4gICAgbGV0IHsgY291bnRyeURpYWxDb2RlLCBudW1iZXIgfSA9IHRoaXMuZ2V0U2VwYXJhdGVkVmFsdWVzKHZhbCk7XG4gICAgbGV0IGNvdW50cnkgPSB0aGlzLmdldENvdW50cnlCeURpYWxDb2RlKGNvdW50cnlEaWFsQ29kZSk7XG4gICAgY29uc3QgcGFyc2VkID0gdGhpcy5nZXRQYXJzZWROdW1iZXIobnVtYmVyLCBjb3VudHJ5ID8gY291bnRyeS5pc28yIDogdW5kZWZpbmVkKTtcbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKHBhcnNlZCkpIHtcbiAgICAgIG51bWJlciA9IHVuZGVmaW5lZDtcbiAgICAgIGNvdW50cnkgPSB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICB0aGlzLmVuc3VyZU9Gb3JtVmFsdWUobnVtYmVyKTtcbiAgICBpZiAodGhpcy5fZkNvbnRyb2wpIHtcbiAgICAgIHRoaXMuX2ZDb250cm9sLnNldFZhbHVlKHRoaXMudmFsdWUudmFsdWUsIG9wdGlvbnMpO1xuICAgICAgaWYgKHNldERpcnR5KSB7XG4gICAgICAgIHRoaXMuX2ZDb250cm9sLm1hcmtBc0RpcnR5KCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fZkNvbnRyb2wuaW52YWxpZCAmJiAhdGhpcy5mb3JtLmlzSW5JbnNlcnRNb2RlKCkpIHtcbiAgICAgICAgdGhpcy5fZkNvbnRyb2wubWFya0FzVG91Y2hlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLm9sZFZhbHVlID0gdGhpcy52YWx1ZS52YWx1ZTtcbiAgfVxuXG4gIG9uQ291bnRyeVNlbGVjdCh2YWx1ZTogTWF0U2VsZWN0Q2hhbmdlKSB7XG4gICAgY29uc3QgY291bnRyeTogQ291bnRyeSA9IHZhbHVlLnZhbHVlXG4gICAgdGhpcy5jb3VudHJ5Q2hhbmdlLmVtaXQoY291bnRyeSk7XG4gICAgdGhpcy5zZXRWYWx1ZSh1bmRlZmluZWQpO1xuICAgIHRoaXMuc2VsZWN0ZWRDb3VudHJ5ID0gY291bnRyeTtcbiAgICBpZiAodGhpcy5tYXRJbnB1dFJlZiAmJiB0aGlzLm1hdElucHV0UmVmLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLm1hdElucHV0UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0sIDApXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlubmVyT25CbHVyKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICBzdXBlci5pbm5lck9uQmx1cihldmVudCk7XG4gICAgaWYgKHRoaXMuX2ZDb250cm9sKSB7XG4gICAgICB0aGlzLl9mQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0U2VsZWN0ZWRDb3VudHJ5SXNvMigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkQ291bnRyeSA/IHRoaXMuc2VsZWN0ZWRDb3VudHJ5LmlzbzIgOiB1bmRlZmluZWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaW5pdGlhbGl6ZUNvdW50cnlEYXRhKCkge1xuICAgIGlmICh0aGlzLmNvdW50cmllcy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKChjKSA9PiB0aGlzLmNvdW50cmllcy5pbmNsdWRlcyhjLmlzbzIpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZW5zdXJlUGhvbmVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgbnVtYmVyID0gdGhpcy5nZXRQYXJzZWROdW1iZXIodmFsdWUsIHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5SXNvMigpKTtcbiAgICBpZiAobnVtYmVyKSB7XG4gICAgICBjb25zdCBpbnRsTm8gPSBudW1iZXJcbiAgICAgICAgPyB0aGlzLnBob25lVXRpbC5mb3JtYXQobnVtYmVyLCBscG4uUGhvbmVOdW1iZXJGb3JtYXQuSU5URVJOQVRJT05BTClcbiAgICAgICAgOiAnJztcbiAgICAgIGlmIChpbnRsTm8pIHtcbiAgICAgICAgdGhpcy52YWx1ZS52YWx1ZSA9IHRoaXMucmVtb3ZlRGlhbENvZGUoaW50bE5vKTtcbiAgICAgICAgdGhpcy5lbWl0UGhvbmVJbnB1dERhdGEoaW50bE5vLCBudW1iZXIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRDb3VudHJ5QnlEaWFsQ29kZShjb3VudHJ5RGlhbENvZGU6IGFueSk6IENvdW50cnkge1xuICAgIGlmIChjb3VudHJ5RGlhbENvZGUpIHtcbiAgICAgIHJldHVybiB0aGlzLnNvcnRDb3VudHJpZXMoKS5maW5kKChjKSA9PiBjLmRpYWxDb2RlID09PSBjb3VudHJ5RGlhbENvZGUpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG4gIHByb3RlY3RlZCBzb3J0Q291bnRyaWVzKCk6IENvdW50cnlbXSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsQ291bnRyaWVzXG4gICAgICAuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICByZXR1cm4gYS5wcmlvcml0eSAtIGIucHJpb3JpdHk7XG4gICAgICB9KVxuICB9XG4gIHByb3RlY3RlZCBnZXRTZXBhcmF0ZWRWYWx1ZXModmFsdWU6IGFueSk6IHsgY291bnRyeURpYWxDb2RlOiBzdHJpbmcsIG51bWJlcjogc3RyaW5nIH0ge1xuICAgIGxldCBjb3VudHJ5RGlhbENvZGUgPSAnJ1xuICAgIGxldCBudW1iZXIgPSAodmFsdWUgaW5zdGFuY2VvZiBPRm9ybVZhbHVlID8gdmFsdWUudmFsdWUgOiB2YWx1ZSkgfHwgdW5kZWZpbmVkXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKG51bWJlcikgJiYgbnVtYmVyLnN0YXJ0c1dpdGgoUEhPTkVfUFJFRklYKSkge1xuICAgICAgY291bnRyeURpYWxDb2RlID0gbnVtYmVyLnN1YnN0cigxLCBudW1iZXIuaW5kZXhPZignICcpIC0gMSk7XG4gICAgICBudW1iZXIgPSBudW1iZXIuc3Vic3RyKGNvdW50cnlEaWFsQ29kZS5sZW5ndGggKyAyKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgY291bnRyeURpYWxDb2RlLCBudW1iZXIgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGVtaXRQaG9uZUlucHV0RGF0YShpbnRsTm8/OiBzdHJpbmcsIG51bWJlcj86IHN0cmluZyk6IHZvaWQge1xuICAgIGxldCBwaG9uZUlucHV0RGF0YTogT1Bob25lSW5wdXREYXRhID0gdW5kZWZpbmVkO1xuICAgIGNvbnN0IGlzbzIgPSB0aGlzLmdldFNlbGVjdGVkQ291bnRyeUlzbzIoKTtcbiAgICBpZiAoaW50bE5vICYmIG51bWJlciAmJiBpc28yKSB7XG4gICAgICBwaG9uZUlucHV0RGF0YSA9IHtcbiAgICAgICAgbnVtYmVyOiB0aGlzLnZhbHVlLnZhbHVlLFxuICAgICAgICBpbnRlcm5hdGlvbmFsTnVtYmVyOiBpbnRsTm8sXG4gICAgICAgIG5hdGlvbmFsTnVtYmVyOiBudW1iZXJcbiAgICAgICAgICA/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5OQVRJT05BTClcbiAgICAgICAgICA6ICcnLFxuICAgICAgICBlMTY0TnVtYmVyOiBudW1iZXJcbiAgICAgICAgICA/IHRoaXMucGhvbmVVdGlsLmZvcm1hdChudW1iZXIsIGxwbi5QaG9uZU51bWJlckZvcm1hdC5FMTY0KVxuICAgICAgICAgIDogJycsXG4gICAgICAgIGNvdW50cnlDb2RlOiBpc28yLnRvVXBwZXJDYXNlKCksXG4gICAgICAgIGRpYWxDb2RlOiBQSE9ORV9QUkVGSVggKyB0aGlzLnNlbGVjdGVkQ291bnRyeS5kaWFsQ29kZSxcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5vblBob25lRGF0YUNoYW5nZS5lbWl0KHBob25lSW5wdXREYXRhKTtcbiAgfVxuXG4gIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBIZWxwZXJzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4gIC8qKlxuICAgKiBSZXR1cm5zIHBhcnNlIFBob25lTnVtYmVyIG9iamVjdC5cbiAgICogQHBhcmFtIHBob25lTnVtYmVyIHN0cmluZ1xuICAgKiBAcGFyYW0gY291bnRyeUNvZGUgc3RyaW5nXG4gICAqL1xuICBwcml2YXRlIGdldFBhcnNlZE51bWJlcihcbiAgICBwaG9uZU51bWJlcjogc3RyaW5nLFxuICAgIGNvdW50cnlDb2RlOiBzdHJpbmdcbiAgKTogbHBuLlBob25lTnVtYmVyIHtcbiAgICBsZXQgbnVtYmVyOiBscG4uUGhvbmVOdW1iZXI7XG4gICAgdHJ5IHtcbiAgICAgIG51bWJlciA9IHRoaXMucGhvbmVVdGlsLnBhcnNlKHBob25lTnVtYmVyLCBjb3VudHJ5Q29kZS50b1VwcGVyQ2FzZSgpKTtcbiAgICB9IGNhdGNoIChlKSB7IH1cbiAgICByZXR1cm4gbnVtYmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIENsZWFucyBkaWFsY29kZSBmcm9tIHBob25lIG51bWJlciBzdHJpbmcuXG4gICAqIEBwYXJhbSBwaG9uZU51bWJlciBzdHJpbmdcbiAgICovXG4gIHByaXZhdGUgcmVtb3ZlRGlhbENvZGUocGhvbmVOdW1iZXI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgbnVtYmVyID0gdGhpcy5nZXRQYXJzZWROdW1iZXIocGhvbmVOdW1iZXIsIHRoaXMuZ2V0U2VsZWN0ZWRDb3VudHJ5SXNvMigpKTtcbiAgICBwaG9uZU51bWJlciA9IHRoaXMucGhvbmVVdGlsLmZvcm1hdChcbiAgICAgIG51bWJlcixcbiAgICAgIGxwbi5QaG9uZU51bWJlckZvcm1hdFt0aGlzLm51bWJlckZvcm1hdF1cbiAgICApO1xuICAgIGlmIChwaG9uZU51bWJlci5zdGFydHNXaXRoKFBIT05FX1BSRUZJWCkgJiYgdGhpcy5zZXBhcmF0ZURpYWxDb2RlKSB7XG4gICAgICBwaG9uZU51bWJlciA9IHBob25lTnVtYmVyLnN1YnN0cmluZyhwaG9uZU51bWJlci5pbmRleE9mKCcgJykgKyAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHBob25lTnVtYmVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZnRzIHRocm91Z2ggYWxsIGNvdW50cmllcyBhbmQgcmV0dXJucyBpc28gY29kZSBvZiB0aGUgcHJpbWFyeSBjb3VudHJ5XG4gICAqIGJhc2VkIG9uIHRoZSBudW1iZXIgcHJvdmlkZWQuXG4gICAqIEBwYXJhbSBjb3VudHJ5Q29kZSBjb3VudHJ5IGNvZGUgaW4gbnVtYmVyIGZvcm1hdFxuICAgKiBAcGFyYW0gbnVtYmVyIFBob25lTnVtYmVyIG9iamVjdFxuICAgKi9cbiAgcHJpdmF0ZSBnZXRDb3VudHJ5SXNvQ29kZShcbiAgICBjb3VudHJ5Q29kZTogbnVtYmVyLFxuICAgIG51bWJlcjogbHBuLlBob25lTnVtYmVyXG4gICk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgLy8gV2lsbCB1c2UgdGhpcyB0byBtYXRjaCBhcmVhIGNvZGUgZnJvbSB0aGUgZmlyc3QgbnVtYmVyc1xuICAgIGNvbnN0IHJhd051bWJlciA9IG51bWJlclsndmFsdWVzXyddWycyJ10udG9TdHJpbmcoKTtcbiAgICAvLyBMaXN0IG9mIGFsbCBjb3VudHJpZXMgd2l0aCBjb3VudHJ5Q29kZSAoY2FuIGJlIG1vcmUgdGhhbiBvbmUuIGUueC4gVVMsIENBLCBETywgUFIgYWxsIGhhdmUgKzEgY291bnRyeUNvZGUpXG4gICAgY29uc3QgY291bnRyaWVzID0gdGhpcy5hbGxDb3VudHJpZXMuZmlsdGVyKFxuICAgICAgKGMpID0+IGMuZGlhbENvZGUgPT09IGNvdW50cnlDb2RlLnRvU3RyaW5nKClcbiAgICApO1xuICAgIC8vIE1haW4gY291bnRyeSBpcyB0aGUgY291bnRyeSwgd2hpY2ggaGFzIG5vIGFyZWFDb2RlcyBzcGVjaWZpZWQgaW4gY291bnRyeS1jb2RlLnRzIGZpbGUuXG4gICAgY29uc3QgbWFpbkNvdW50cnkgPSBjb3VudHJpZXMuZmluZCgoYykgPT4gYy5hcmVhQ29kZXMgPT09IHVuZGVmaW5lZCk7XG4gICAgLy8gU2Vjb25kYXJ5IGNvdW50cmllcyBhcmUgYWxsIGNvdW50cmllcywgd2hpY2ggaGF2ZSBhcmVhQ29kZXMgc3BlY2lmaWVkIGluIGNvdW50cnktY29kZS50cyBmaWxlLlxuICAgIGNvbnN0IHNlY29uZGFyeUNvdW50cmllcyA9IGNvdW50cmllcy5maWx0ZXIoKGMpID0+IGMuYXJlYUNvZGVzICE9PSB1bmRlZmluZWQpO1xuICAgIGxldCBtYXRjaGVkQ291bnRyeSA9IG1haW5Db3VudHJ5ID8gbWFpbkNvdW50cnkuaXNvMiA6IHVuZGVmaW5lZDtcblxuICAgIC8qXG4gICAgICBJdGVyYXRlIG92ZXIgZWFjaCBzZWNvbmRhcnkgY291bnRyeSBhbmQgY2hlY2sgaWYgbmF0aW9uYWxOdW1iZXIgc3RhcnRzIHdpdGggYW55IG9mIGFyZWFDb2RlcyBhdmFpbGFibGUuXG4gICAgICBJZiBubyBtYXRjaGVzIGZvdW5kLCBmYWxsYmFjayB0byB0aGUgbWFpbiBjb3VudHJ5LlxuICAgICovXG4gICAgc2Vjb25kYXJ5Q291bnRyaWVzLmZvckVhY2goKGNvdW50cnkpID0+IHtcbiAgICAgIGNvdW50cnkuYXJlYUNvZGVzLmZvckVhY2goKGFyZWFDb2RlKSA9PiB7XG4gICAgICAgIGlmIChyYXdOdW1iZXIuc3RhcnRzV2l0aChhcmVhQ29kZSkpIHtcbiAgICAgICAgICBtYXRjaGVkQ291bnRyeSA9IGNvdW50cnkuaXNvMjtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbWF0Y2hlZENvdW50cnk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyBmb3JtYXR0ZWQgZXhhbXBsZSBwaG9uZSBudW1iZXIgZnJvbSBwaG9uZVV0aWwuXG4gICAqIEBwYXJhbSBjb3VudHJ5Q29kZSBzdHJpbmdcbiAgICovXG4gIHByb3RlY3RlZCBnZXRQaG9uZU51bWJlclBsYWNlSG9sZGVyKGNvdW50cnlDb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gdGhpcy5waG9uZVV0aWwuZm9ybWF0KFxuICAgICAgICB0aGlzLnBob25lVXRpbC5nZXRFeGFtcGxlTnVtYmVyKGNvdW50cnlDb2RlKSxcbiAgICAgICAgbHBuLlBob25lTnVtYmVyRm9ybWF0W3RoaXMubnVtYmVyRm9ybWF0XVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gZTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYXJpbmcgdGhlIGxpc3QgdG8gYXZvaWQgZHVwbGljYXRlcyAoaHR0cHM6Ly9naXRodWIuY29tL3dlYmNhdDEyMzQ1L25neC1pbnRsLXRlbC1pbnB1dC9pc3N1ZXMvMjQ4KVxuICAgKi9cbiAgcHJvdGVjdGVkIGZldGNoQ291bnRyeURhdGEoKTogdm9pZCB7XG4gICAgdGhpcy5hbGxDb3VudHJpZXMgPSBbXTtcblxuICAgIHRoaXMuY291bnRyeUNvZGVEYXRhLmFsbENvdW50cmllcy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBjb25zdCBjb3VudHJ5OiBDb3VudHJ5ID0ge1xuICAgICAgICBuYW1lOiBjWzBdLnRvU3RyaW5nKCksXG4gICAgICAgIGlzbzI6IGNbMV0udG9TdHJpbmcoKSxcbiAgICAgICAgZGlhbENvZGU6IGNbMl0udG9TdHJpbmcoKSxcbiAgICAgICAgcHJpb3JpdHk6ICtjWzNdIHx8IDAsXG4gICAgICAgIGFyZWFDb2RlczogKGNbNF0gYXMgc3RyaW5nW10pIHx8IHVuZGVmaW5lZCxcbiAgICAgICAgaHRtbElkOiBgaXRpLTBfX2l0ZW0tJHtjWzFdLnRvU3RyaW5nKCl9YCxcbiAgICAgICAgZmxhZ0NsYXNzOiBgaXRpX18ke2NbMV0udG9TdHJpbmcoKS50b0xvY2FsZUxvd2VyQ2FzZSgpfWAsXG4gICAgICAgIHBsYWNlSG9sZGVyOiAnJyxcbiAgICAgIH07XG4gICAgICBpZiAoIXRoaXMub3BsYWNlaG9sZGVyKSB7XG4gICAgICAgIGNvdW50cnkucGxhY2VIb2xkZXIgPSB0aGlzLmdldFBob25lTnVtYmVyUGxhY2VIb2xkZXIoXG4gICAgICAgICAgY291bnRyeS5pc28yLnRvVXBwZXJDYXNlKClcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuYWxsQ291bnRyaWVzLnB1c2goY291bnRyeSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIC8vIElmIHRoZSB1c2VyIGRlZmluZWQgaXRzIG93biBwbGFjZWhvbGRlciB1c2luZyB0aGF0IGlucHV0IGl0IHdpbGwgb3ZlcnJpZGUgYW55IGNvdW50cnkgcGxhY2Vob2xkZXJcbiAgICBsZXQgcGxhY2Vob2xkZXIgPSAnJztcbiAgICBpZiAodGhpcy5zZWxlY3RlZENvdW50cnkgJiYgdGhpcy5zZWxlY3RlZENvdW50cnkucGxhY2VIb2xkZXIgJiYgdGhpcy5zZWxlY3RlZENvdW50cnkucGxhY2VIb2xkZXIubGVuZ3RoID4gMCkge1xuICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnNlbGVjdGVkQ291bnRyeS5wbGFjZUhvbGRlcjtcbiAgICAgIGlmICh0aGlzLnNlcGFyYXRlRGlhbENvZGUpIHtcbiAgICAgICAgcGxhY2Vob2xkZXIgPSB0aGlzLnJlbW92ZURpYWxDb2RlKHBsYWNlaG9sZGVyKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHBsYWNlaG9sZGVyO1xuICB9XG59XG4iLCI8ZGl2IFtmb3JtR3JvdXBdPVwiZ2V0Rm9ybUdyb3VwKClcIiBmeExheW91dD1cInJvdyB3cmFwXCIgW2Z4TGF5b3V0R2FwXT1cImdhcCArJyBncmlkJ1wiPlxuICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJtYXQtZm9ybS1waG9uZVwiIFtmbG9hdExhYmVsXT1cImZsb2F0TGFiZWxcIiBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW2NsYXNzLnJlYWQtb25seV09XCJpc1JlYWRPbmx5XCIgZnhGbGV4LnhzXG4gICAgW3N1YnNjcmlwdFNpemluZ109XCJzdWJzY3JpcHRTaXppbmdcIj5cbiAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWxWaXNpYmxlXCI+e3sgb2xhYmVsIHwgb1RyYW5zbGF0ZSB9fTwvbWF0LWxhYmVsPlxuICAgIDxtYXQtc2VsZWN0IFt2YWx1ZV09XCJzZWxlY3RlZENvdW50cnlcIiAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uQ291bnRyeVNlbGVjdCgkZXZlbnQpXCIgW2Rpc2FibGVkXT1cIiFlbmFibGVkXCI+XG4gICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgY291bnRyeSBvZiBhbGxDb3VudHJpZXNcIiBbdmFsdWVdPVwiY291bnRyeVwiPiB7e2NvdW50cnkubmFtZX19ICt7e2NvdW50cnkuZGlhbENvZGV9fTwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDxtYXQtZm9ybS1maWVsZCBbaGlkZVJlcXVpcmVkTWFya2VyXT1cImhpZGVSZXF1aXJlZE1hcmtlclwiIFtjbGFzcy5jdXN0b20td2lkdGhdPVwiaGFzQ3VzdG9tV2lkdGhcIiBjbGFzcz1cImljb24tZmllbGRcIiBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCJcbiAgICBbc3Vic2NyaXB0U2l6aW5nXT1cInN1YnNjcmlwdFNpemluZ1wiIGZ4RmxleD5cbiAgICA8aW5wdXQgI21hdElucHV0UmVmIG1hdElucHV0IHR5cGU9XCJ0ZWxcIiBbaWRdPVwiZ2V0QXR0cmlidXRlKClcIiBbZm9ybUNvbnRyb2xOYW1lXT1cImdldEF0dHJpYnV0ZSgpXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcbiAgICAgIChmb2N1cyk9XCJpbm5lck9uRm9jdXMoJGV2ZW50KVwiIChibHVyKT1cImlubmVyT25CbHVyKCRldmVudClcIiBbcmVhZG9ubHldPVwiaXNSZWFkT25seVwiIChjaGFuZ2UpPVwib25DaGFuZ2VFdmVudCgkZXZlbnQpXCIgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWRcIj5cbiAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAqbmdJZj1cInNob3dDbGVhckJ1dHRvblwiIG1hdFN1ZmZpeCBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uQ2xpY2tDbGVhclZhbHVlKCRldmVudClcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwib250aW1pemU6Y2xvc2VcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICAgIDxtYXQtaWNvbiBtYXRTdWZmaXggW2NsYXNzLm1hdC1kaXNhYmxlZF09XCIhZW5hYmxlZFwiIGNsYXNzPVwic3ZnLWljb25cIiBzdmdJY29uPVwib250aW1pemU6cGhvbmVfb3V0bGluZVwiPjwvbWF0LWljb24+XG4gICAgPG1hdC1lcnJvciAqb01hdEVycm9yPVwiaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5cbiAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uUkVRVUlSRUQnIHwgb1RyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3IgKm9NYXRFcnJvcj1cImhhc0Vycm9yKCd2YWxpZGF0ZVBob25lTnVtYmVyJylcIj5cbiAgICAgIHt7ICdGT1JNX1ZBTElEQVRJT04uUEhPTkVfRk9STUFUJyB8IG9UcmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0Zvcj1cImxldCBvRXJyb3Igb2YgZ2V0QWN0aXZlT0Vycm9ycygpXCI+XG4gICAgICB7eyBvRXJyb3IudGV4dCB8IG9UcmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PlxuIl19
@@ -196,7 +196,7 @@ export class OSearchInputComponent {
196
196
  }
197
197
  }
198
198
  OSearchInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OSearchInputComponent, deps: [{ token: i0.Injector }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
199
- OSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OSearchInputComponent, selector: "o-search-input", inputs: { placeholder: "placeholder", label: "label", width: "width", floatLabel: ["float-label", "floatLabel"], appearance: "appearance", columns: "columns", filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], showCaseSensitiveCheckbox: ["show-case-sensitive-checkbox", "showCaseSensitiveCheckbox"], showMenu: ["show-menu", "showMenu"] }, outputs: { onSearch: "onSearch" }, host: { properties: { "class.o-search-input": "true" } }, ngImport: i0, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\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.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
199
+ OSearchInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OSearchInputComponent, selector: "o-search-input", inputs: { placeholder: "placeholder", label: "label", width: "width", floatLabel: ["float-label", "floatLabel"], appearance: "appearance", columns: "columns", filterCaseSensitive: ["filter-case-sensitive", "filterCaseSensitive"], showCaseSensitiveCheckbox: ["show-case-sensitive-checkbox", "showCaseSensitiveCheckbox"], showMenu: ["show-menu", "showMenu"] }, outputs: { onSearch: "onSearch" }, host: { properties: { "class.o-search-input": "true" } }, ngImport: i0, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\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.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i6.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i7.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "component", type: i9.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "pipe", type: i12.OTranslatePipe, name: "oTranslate" }], encapsulation: i0.ViewEncapsulation.None });
200
200
  __decorate([
201
201
  BooleanInputConverter(),
202
202
  __metadata("design:type", Boolean)
@@ -213,6 +213,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
213
213
  type: Component,
214
214
  args: [{ selector: 'o-search-input', inputs: DEFAULT_INPUTS_O_SEARCH_INPUT, outputs: DEFAULT_OUTPUTS_O_SEARCH_INPUT, encapsulation: ViewEncapsulation.None, host: {
215
215
  '[class.o-search-input]': 'true'
216
- }, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"] }]
216
+ }, template: "<form [formGroup]=\"getFormGroup()\">\n <div class=\"quickFilter\" fxLayout=\"row\">\n <mat-form-field [appearance]=\"appearance\">\n <mat-icon *ngIf=\"!showFilterMenu\" svgIcon=\"ontimize:search\" matPrefix></mat-icon>\n <input #term matInput id=\"term\" type=\"search\" formControlName=\"term\" [placeholder]=\"placeholder\">\n <mat-label *ngIf=\"labelVisible\">{{ label | oTranslate }}</mat-label>\n <div *ngIf=\"showFilterMenu\" fxLayout=\"row\" matPrefix>\n <mat-icon svgIcon=\"ontimize:search\" [matBadge]=\"areAllColumnsChecked()?'':getCountColumnsChecked()\" matBadgeSize=\"small\"></mat-icon>\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" (menuClosed)=\"onMenuClosed()\" (click)=\"$event.stopPropagation()\">\n <mat-icon class=\"search-icon\">expand_more</mat-icon>\n </button>\n </div>\n\n\n <mat-menu #menu=\"matMenu\" class=\"o-search-input-menu\">\n <div fxLayout=\"column\" class=\"checkbox-container\">\n\n <ng-container *ngIf=\"colArray.length > 1\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"areAllColumnsChecked()\" (change)=\"onSelectAllChange($event)\">\n {{ 'SELECT_ALL' | oTranslate }}</mat-checkbox>\n <mat-divider></mat-divider>\n </ng-container>\n\n <ng-container *ngFor=\"let item of colArray\">\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"isChecked(item)\" (change)=\"onCheckboxChange(item, $event)\">\n {{ item.column | oTranslate }}\n </mat-checkbox>\n </ng-container>\n\n <ng-container *ngIf=\"showCaseSensitiveCheckbox\">\n <mat-divider></mat-divider>\n <mat-checkbox (click)=\"$event.stopPropagation()\" [checked]=\"filterCaseSensitive\" (change)=\"onFilterCaseSensitiveChange($event)\">\n {{ 'TABLE.FILTER.CASE_SENSITIVE' | oTranslate }}\n </mat-checkbox>\n </ng-container>\n </div>\n </mat-menu>\n </mat-form-field>\n </div>\n</form>\n", styles: [".o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper{padding-bottom:0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{height:32px;line-height:32px;padding:0 10px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-infix{border-top:0;padding:0 4px;align-self:center}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{align-self:stretch;display:flex}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div{align-items:center;display:inline-flex;margin:2px 0}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-badge-content{background-color:#3c8500;width:14px;height:14px;line-height:14px;top:-4px;right:-4px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div .mat-icon,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button{margin-right:6px}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button{height:100%;width:auto}.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix div button.mat-mdc-icon-button .mat-mdc-button-persistent-ripple,.o-search-input .quickFilter .mat-mdc-form-field .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-subscript-wrapper{display:none}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-flex{padding-top:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-fill .mat-mdc-form-field-underline{bottom:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper,.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex{margin:0}.o-search-input .quickFilter .mat-mdc-form-field.mat-form-field-appearance-outline .mat-mdc-text-field-wrapper .mat-mdc-form-field-flex .mat-mdc-form-field-icon-prefix{border-right:1px solid rgba(0,0,0,.12)}.o-search-input-menu .mat-divider{margin:8px 0}.o-search-input-menu .checkbox-container{padding:6px 12px}\n"] }]
217
217
  }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i0.ElementRef }]; }, propDecorators: { showCaseSensitiveCheckbox: [], showMenu: [], _filterCaseSensitive: [] } });
218
218
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL2NvbXBvbmVudHMvaW5wdXQvc2VhcmNoLWlucHV0L28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9jb21wb25lbnRzL2lucHV0L3NlYXJjaC1pbnB1dC9vLXNlYXJjaC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQVUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUlwRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7Ozs7Ozs7O0FBRTFDLE1BQU0sQ0FBQyxNQUFNLDZCQUE2QixHQUFHO0lBQzNDLGFBQWE7SUFDYixPQUFPO0lBQ1AsT0FBTztJQUNQLHlCQUF5QjtJQUN6QixZQUFZO0lBQ1osU0FBUztJ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Z0JBQWdCO1FBQ2xCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDckQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDM0MsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDekIsT0FBTyxxQkFBcUIsQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7YUFDOUU7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7O2tIQWhOVSxxQkFBcUI7c0dBQXJCLHFCQUFxQiwwZkNoRGxDLGlpRUF3Q0E7QUQrQkU7SUFBQyxxQkFBcUIsRUFBRTs7d0VBQzBCO0FBQ2xEO0lBQUMscUJBQXFCLEVBQUU7O3VEQUNRO0FBQ2hDO0lBQUMscUJBQXFCLEVBQUU7O21FQUN3QjsyRkE1QnJDLHFCQUFxQjtrQkFYakMsU0FBUzsrQkFDRSxnQkFBZ0IsVUFHbEIsNkJBQTZCLFdBQzVCLDhCQUE4QixpQkFDeEIsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSix3QkFBd0IsRUFBRSxNQUFNO3FCQUNqQzt3SEEwQk0seUJBQXlCLE1BRXpCLFFBQVEsTUFFTCxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdENoZWNrYm94Q2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xuaW1wb3J0IHsgRmxvYXRMYWJlbFR5cGUsIE1hdEZvcm1GaWVsZEFwcGVhcmFuY2UgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE9fSU5QVVRTX09QVElPTlMgfSBmcm9tICcuLi8uLi8uLi9jb25maWcvYXBwLWNvbmZpZyc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXRDb252ZXJ0ZXIgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2lucHV0LWNvbnZlcnRlcic7XG5pbXBvcnQgeyBTbmFja0JhclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9zbmFja2Jhci5zZXJ2aWNlJztcbmltcG9ydCB7IE9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlL28tdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2V4cHJlc3Npb24udHlwZSc7XG5pbXBvcnQgeyBGb3JtVmFsdWVPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMvZm9ybS12YWx1ZS1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgT0lucHV0c09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi90eXBlcy9vLWlucHV0cy1vcHRpb25zLnR5cGUnO1xuaW1wb3J0IHsgRmlsdGVyRXhwcmVzc2lvblV0aWxzIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC9maWx0ZXItZXhwcmVzc2lvbi51dGlscyc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbC91dGlsJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfSU5QVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAncGxhY2Vob2xkZXInLFxuICAnbGFiZWwnLFxuICAnd2lkdGgnLFxuICAnZmxvYXRMYWJlbDogZmxvYXQtbGFiZWwnLFxuICAnYXBwZWFyYW5jZScsXG4gICdjb2x1bW5zJyxcbiAgJ2ZpbHRlckNhc2VTZW5zaXRpdmU6IGZpbHRlci1jYXNlLXNlbnNpdGl2ZScsXG4gICdzaG93Q2FzZVNlbnNpdGl2ZUNoZWNrYm94OiBzaG93LWNhc2Utc2Vuc2l0aXZlLWNoZWNrYm94JyxcbiAgJ3Nob3dNZW51OiBzaG93LW1lbnUnXG5dO1xuXG5leHBvcnQgY29uc3QgREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVUID0gW1xuICAnb25TZWFyY2gnXG5dO1xuXG5kZWNsYXJlIHR5cGUgQ29sdW1uT2JqZWN0ID0ge1xuICBjb2x1bW46IHN0cmluZztcbiAgY2hlY2tlZDogYm9vbGVhbjtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ28tc2VhcmNoLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tc2VhcmNoLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vby1zZWFyY2gtaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgaW5wdXRzOiBERUZBVUxUX0lOUFVUU19PX1NFQVJDSF9JTlBVVCxcbiAgb3V0cHV0czogREVGQVVMVF9PVVRQVVRTX09fU0VBUkNIX0lOUFVULFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgJ1tjbGFzcy5vLXNlYXJjaC1pbnB1dF0nOiAndHJ1ZSdcbiAgfVxufSlcbmV4cG9ydCBjbGFzcyBPU2VhcmNoSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQge1xuXG4gIHB1YmxpYyBvblNlYXJjaDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2xBcnJheTogQ29sdW1uT2JqZWN0W10gPSBbXTtcbiAgcHVibGljIF9wbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NFQVJDSCc7XG5cbiAgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXQodGhpcy5fcGxhY2Vob2xkZXIpO1xuICB9XG5cbiAgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQodmFsdWUpKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYWJlbFZpc2libGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFV0aWwuaXNEZWZpbmVkKHRoaXMubGFiZWwpO1xuICB9XG5cbiAgcHVibGljIHdpZHRoOiBzdHJpbmc7XG4gIHB1YmxpYyBjb2x1bW5zOiBzdHJpbmc7XG4gIEBCb29sZWFuSW5wdXRDb252ZXJ0ZXIoKVxuICBwdWJsaWMgc2hvd0Nhc2VTZW5zaXRpdmVDaGVja2JveDogYm9vbGVhbiA9IGZhbHNlO1xuICBAQm9vbGVhbklucHV0Q29udmVydGVyKClcbiAgcHVibGljIHNob3dNZW51OiBib29sZWFuID0gdHJ1ZTtcbiAgQEJvb2xlYW5JbnB1dENvbnZlcnRlcigpXG4gIHByb3RlY3RlZCBfZmlsdGVyQ2FzZVNlbnNpdGl2ZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgX2Zsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlO1xuICBwcm90ZWN0ZWQgX2FwcGVhcmFuY2U6IE1hdEZvcm1GaWVsZEFwcGVhcmFuY2U7XG5cbiAgcHJvdGVjdGVkIGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cDtcbiAgcHJvdGVjdGVkIHRlcm06IFVudHlwZWRGb3JtQ29udHJvbDtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IE9UcmFuc2xhdGVTZXJ2aWNlO1xuICBwcm90ZWN0ZWQgb0lucHV0c09wdGlvbnM6IE9JbnB1dHNPcHRpb25zO1xuICBwcm90ZWN0ZWQgc25hY2tCYXJTZXJ2aWNlOiBTbmFja0JhclNlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvcixcbiAgICBwcm90ZWN0ZWQgZWxSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoT1RyYW5zbGF0ZVNlcnZpY2UpO1xuICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoU25hY2tCYXJTZXJ2aWNlKTtcbiAgICB0aGlzLmZvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHt9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRlcm0gPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCk7XG4gICAgdGhpcy5mb3JtR3JvdXAuYWRkQ29udHJvbCgndGVybScsIHRoaXMudGVybSk7XG5cbiAgICB0aGlzLnRlcm0udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDQwMCkpXG4gICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodGVybSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmNoZWNrQWN0aXZlQ29sdW1ucygpKSB7XG4gICAgICAgICAgdGhpcy5vblNlYXJjaC5lbWl0KHRlcm0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIGNvbnN0IGNvbEFycmF5ID0gVXRpbC5wYXJzZUFycmF5KHRoaXMuY29sdW1ucywgdHJ1ZSk7XG4gICAgY29sQXJyYXkuZm9yRWFjaCgoY29sOiBzdHJpbmcpID0+IHtcbiAgICAgIHRoaXMuY29sQXJyYXkucHVzaCh7XG4gICAgICAgIGNvbHVtbjogY29sLFxuICAgICAgICBjaGVja2VkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMub0lucHV0c09wdGlvbnMgPSB0aGlzLmluamVjdG9yLmdldChPX0lOUFVUU19PUFRJT05TKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLm9JbnB1dHNPcHRpb25zID0ge307XG4gICAgfVxuICAgIFV0aWwucGFyc2VPSW5wdXRzT3B0aW9ucyh0aGlzLmVsUmVmLCB0aGlzLm9JbnB1dHNPcHRpb25zKTtcbiAgfVxuXG4gIGdldCBmbG9hdExhYmVsKCk6IEZsb2F0TGFiZWxUeXBlIHtcbiAgICByZXR1cm4gdGhpcy5fZmxvYXRMYWJlbDtcbiAgfVxuXG4gIHNldCBmbG9hdExhYmVsKHZhbHVlOiBGbG9hdExhYmVsVHlwZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnYWx3YXlzJywgJ2F1dG8nXTtcbiAgICBpZiAodmFsdWVzLmluZGV4T2YodmFsdWUpID09PSAtMSkge1xuICAgICAgdmFsdWUgPSAnYWx3YXlzJztcbiAgICB9XG4gICAgdGhpcy5fZmxvYXRMYWJlbCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGFwcGVhcmFuY2UoKTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSB7XG4gICAgcmV0dXJuIHRoaXMuX2FwcGVhcmFuY2U7XG4gIH1cblxuICBzZXQgYXBwZWFyYW5jZSh2YWx1ZTogTWF0Rm9ybUZpZWxkQXBwZWFyYW5jZSkge1xuICAgIGNvbnN0IHZhbHVlcyA9IFsnZmlsbCcsICdvdXRsaW5lJ107XG4gICAgaWYgKHZhbHVlcy5pbmRleE9mKHZhbHVlKSA9PT0gLTEpIHtcbiAgICAgIHZhbHVlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgICB0aGlzLl9hcHBlYXJhbmNlID0gdmFsdWU7XG4gIH1cblxuICBnZXQgZmlsdGVyQ2FzZVNlbnNpdGl2ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZTtcbiAgfVxuXG4gIHNldCBmaWx0ZXJDYXNlU2Vuc2l0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZmlsdGVyQ2FzZVNlbnNpdGl2ZSA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Hcm91cCgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXA7XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50ZXJtLnZhbHVlO1xuICB9XG5cbiAgcHVibGljIHNldFZhbHVlKHZhbDogc3RyaW5nLCBvcHRpb25zPzogRm9ybVZhbHVlT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMudGVybS5zZXRWYWx1ZSh2YWwsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIGdldEZvcm1Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB7XG4gICAgcmV0dXJuIHRoaXMudGVybTtcbiAgfVxuXG4gIGdldCBoYXNDdXN0b21XaWR0aCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53aWR0aCAhPT0gdW5kZWZpbmVkO1xuICB9XG5cbiAgZ2V0IHNob3dGaWx0ZXJNZW51KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNob3dNZW51ICYmIHRoaXMuY29sQXJyYXkubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBpc0NoZWNrZWQoY29sdW1uOiBDb2x1bW5PYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gY29sdW1uLmNoZWNrZWQ7XG4gIH1cblxuICBwdWJsaWMgb25DaGVja2JveENoYW5nZShjb2x1bW46IENvbHVtbk9iamVjdCwgZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgY29sdW1uLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBbGxDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgY29sLmNoZWNrZWQgPSBldmVudC5jaGVja2VkO1xuICAgIH0pO1xuICAgIC8vIHRyaWdnZXJPblNlYXJjaCBpZiB3ZSB3YW50IHRvIHRyaWdnZXIgc2VhcmNoIG9uIGVhY2ggY2hhbmdlXG4gIH1cblxuICBwdWJsaWMgYXJlQWxsQ29sdW1uc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgbGV0IHJlc3VsdDogYm9vbGVhbiA9IHRydWU7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0ICYmIGNvbC5jaGVja2VkO1xuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q291bnRDb2x1bW5zQ2hlY2tlZCgpOiBudW1iZXIge1xuICAgIGxldCBjb3VudCA9IDA7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjb2w6IENvbHVtbk9iamVjdCkgPT4ge1xuICAgICAgaWYgKGNvbC5jaGVja2VkKSB7XG4gICAgICAgIGNvdW50Kys7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGNvdW50O1xuICB9XG4gIHB1YmxpYyBvbkZpbHRlckNhc2VTZW5zaXRpdmVDaGFuZ2UoZXZlbnQ6IE1hdENoZWNrYm94Q2hhbmdlKTogdm9pZCB7XG4gICAgdGhpcy5maWx0ZXJDYXNlU2Vuc2l0aXZlID0gZXZlbnQuY2hlY2tlZDtcbiAgICAvLyB0cmlnZ2VyT25TZWFyY2ggaWYgd2Ugd2FudCB0byB0cmlnZ2VyIHNlYXJjaCBvbiBlYWNoIGNoYW5nZVxuICB9XG5cbiAgcHVibGljIGdldEFjdGl2ZUNvbHVtbnMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbEFycmF5LmZpbHRlcihjb2wgPT4gY29sLmNoZWNrZWQpLm1hcChjb2wgPT4gY29sLmNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgc2V0QWN0aXZlQ29sdW1ucyhhcmc6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgdGhpcy5jb2xBcnJheS5mb3JFYWNoKChjOiBDb2x1bW5PYmplY3QpID0+IHtcbiAgICAgIGMuY2hlY2tlZCA9IGFyZy5pbmRleE9mKGMuY29sdW1uKSAhPT0gLTE7XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2hlY2tBY3RpdmVDb2x1bW5zKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc25hY2tCYXJTZXJ2aWNlLm9wZW4oJ01FU1NBR0VTLkFWT0lEX1FVRVJZX1dJVEhPVVRfUVVJQ0tGSUxURVJfQ09MVU1OUycpO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0cmlnZ2VyT25TZWFyY2goKTogdm9pZCB7XG4gICAgY29uc3QgdGVybSA9IHRoaXMudGVybS52YWx1ZTtcbiAgICBpZiAodGhpcy5jaGVja0FjdGl2ZUNvbHVtbnMoKSAmJiBVdGlsLmlzRGVmaW5lZCh0ZXJtKSAmJiB0ZXJtLmxlbmd0aCA+IDApIHtcbiAgICAgIHRoaXMub25TZWFyY2guZW1pdCh0ZXJtKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25NZW51Q2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMudHJpZ2dlck9uU2VhcmNoKCk7XG4gIH1cblxuICBnZXQgZmlsdGVyRXhwcmVzc2lvbigpOiBFeHByZXNzaW9uIHtcbiAgICBjb25zdCB0ZXJtVmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKHRlcm1WYWx1ZSkgJiYgdGVybVZhbHVlLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGZpbHRlckNvbHMgPSB0aGlzLmdldEFjdGl2ZUNvbHVtbnMoKTtcbiAgICAgIGlmIChmaWx0ZXJDb2xzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgcmV0dXJuIEZpbHRlckV4cHJlc3Npb25VdGlscy5idWlsZEFycmF5RXhwcmVzc2lvbkxpa2UoZmlsdGVyQ29scywgdGVybVZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJnZXRGb3JtR3JvdXAoKVwiPlxuICA8ZGl2IGNsYXNzPVwicXVpY2tGaWx0ZXJcIiBmeExheW91dD1cInJvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCI+XG4gICAgICA8bWF0LWljb24gKm5nSWY9XCIhc2hvd0ZpbHRlck1lbnVcIiBzdmdJY29uPVwib250aW1pemU6c2VhcmNoXCIgbWF0UHJlZml4PjwvbWF0LWljb24+XG4gICAgICA8aW5wdXQgI3Rlcm0gbWF0SW5wdXQgaWQ9XCJ0ZXJtXCIgdHlwZT1cInNlYXJjaFwiIGZvcm1Db250cm9sTmFtZT1cInRlcm1cIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIj5cbiAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbFZpc2libGVcIj57eyBsYWJlbCB8IG9UcmFuc2xhdGUgfX08L21hdC1sYWJlbD5cbiAgICAgIDxkaXYgKm5nSWY9XCJzaG93RmlsdGVyTWVudVwiIGZ4TGF5b3V0PVwicm93XCIgbWF0UHJlZml4PlxuICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cIm9udGltaXplOnNlYXJjaFwiIFttYXRCYWRnZV09XCJhcmVBbGxDb2x1bW5zQ2hlY2tlZCgpPycnOmdldENvdW50Q29sdW1uc0NoZWNrZWQoKVwiIG1hdEJhZGdlU2l6ZT1cInNtYWxsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gW21hdE1lbnVUcmlnZ2VyRm9yXT1cIm1lbnVcIiAobWVudUNsb3NlZCk9XCJvbk1lbnVDbG9zZWQoKVwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJzZWFyY2gtaWNvblwiPmV4cGFuZF9tb3JlPC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cblxuXG4gICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCIgY2xhc3M9XCJvLXNlYXJjaC1pbnB1dC1tZW51XCI+XG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImNoZWNrYm94LWNvbnRhaW5lclwiPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbEFycmF5Lmxlbmd0aCA+IDFcIj5cbiAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiIFtjaGVja2VkXT1cImFyZUFsbENvbHVtbnNDaGVja2VkKClcIiAoY2hhbmdlKT1cIm9uU2VsZWN0QWxsQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAge3sgJ1NFTEVDVF9BTEwnIHwgb1RyYW5zbGF0ZSB9fTwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgICAgPG1hdC1kaXZpZGVyPjwvbWF0LWRpdmlkZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbEFycmF5XCI+XG4gICAgICAgICAgICA8bWF0LWNoZWNrYm94IChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIiBbY2hlY2tlZF09XCJpc0NoZWNrZWQoaXRlbSlcIiAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoaXRlbSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICB7eyBpdGVtLmNvbHVtbiB8IG9UcmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvbWF0LWNoZWNrYm94PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dDYXNlU2Vuc2l0aXZlQ2hlY2tib3hcIj5cbiAgICAgICAgICAgIDxtYXQtZGl2aWRlcj48L21hdC1kaXZpZGVyPlxuICAgICAgICAgICAgPG1hdC1jaGVja2JveCAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCIgW2NoZWNrZWRdPVwiZmlsdGVyQ2FzZVNlbnNpdGl2ZVwiIChjaGFuZ2UpPVwib25GaWx0ZXJDYXNlU2Vuc2l0aXZlQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgICAgICAge3sgJ1RBQkxFLkZJTFRFUi5DQVNFX1NFTlNJVElWRScgfCBvVHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8L21hdC1jaGVja2JveD5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21hdC1tZW51PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuPC9mb3JtPlxuIl19
@@ -64,12 +64,12 @@ export class OListItemComponent {
64
64
  }
65
65
  }
66
66
  OListItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OListItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: forwardRef(() => OListComponent), optional: true }], target: i0.ɵɵFactoryTarget.Component });
67
- OListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OListItemComponent, selector: "o-list-item", host: { properties: { "class.o-list-item": "true" } }, queries: [{ propertyName: "_lines", predicate: MatListItemLine, descendants: true }, { propertyName: "_titles", predicate: MatListItemTitle, descendants: true }], viewQueries: [{ propertyName: "_innerListItem", first: true, predicate: ["innerListItem"], descendants: true, static: true }], ngImport: i0, template: "<mat-list-item #innerListItem>\n <div class=\"o-list-row-action o-list-item-selection-check\" *ngIf=\"_list && _list.selectable\">\n <mat-checkbox [checked]=\"isSelected\" (change)=\"onCheckboxChange()\" (click)=\"onCheckboxClicked($event)\"></mat-checkbox>\n </div>\n <ng-content select=\"[o-list-item-avatar], [matListAvatar], [matListIcon]\"> </ng-content>\n <div class=\"mat-mdc-list-item\">\n <ng-content select=\"[matLine]\"></ng-content>\n </div>\n <!--matListItemMeta to put content into the meta section of a list item-->\n <div matListItemMeta>\n <ng-content select=\"o-list-item-card-image,o-list-item-card\"></ng-content>\n </div>\n <ng-content select=\"o-list-item-text,o-list-item-avatar, [o-list-item]\"></ng-content>\n\n <div fxLayout=\"row\" class=\"row-buttons-container\">\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.editButtonInRow\" (click)=\"onEditIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.editButtonInRowIcon }}</mat-icon>\n </div>\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.detailButtonInRow\" (click)=\"onDetailIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.detailButtonInRowIcon }}</mat-icon>\n </div>\n </div>\n</mat-list-item>\n", styles: [".o-list-item{display:flex}.o-list-item .mat-mdc-list-item{width:100%}.o-list-item .mat-mdc-list-item .row-buttons-container .o-list-row-action{height:24px;text-align:center;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemMeta, selector: "[matListItemMeta]" }], encapsulation: i0.ViewEncapsulation.None });
67
+ OListItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: OListItemComponent, selector: "o-list-item", host: { properties: { "class.o-list-item": "true" } }, queries: [{ propertyName: "_lines", predicate: MatListItemLine, descendants: true }, { propertyName: "_titles", predicate: MatListItemTitle, descendants: true }], viewQueries: [{ propertyName: "_innerListItem", first: true, predicate: ["innerListItem"], descendants: true, static: true }], ngImport: i0, template: "<mat-list-item #innerListItem>\n <div class=\"o-list-row-action o-list-item-selection-check\" *ngIf=\"_list && _list.selectable\">\n <mat-checkbox [checked]=\"isSelected\" (change)=\"onCheckboxChange()\" (click)=\"onCheckboxClicked($event)\"></mat-checkbox>\n </div>\n <ng-content select=\"[o-list-item-avatar], [matListAvatar], [matListIcon]\"> </ng-content>\n <div class=\"mat-mdc-list-item\">\n <ng-content select=\"[matLine]\"></ng-content>\n </div>\n <!--matListItemMeta to put content into the meta section of a list item-->\n <div matListItemMeta>\n <ng-content select=\"o-list-item-card-image,o-list-item-card\"></ng-content>\n </div>\n <ng-content select=\"o-list-item-text,o-list-item-avatar, [o-list-item]\"></ng-content>\n\n <div fxLayout=\"row\" class=\"row-buttons-container\">\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.editButtonInRow\" (click)=\"onEditIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.editButtonInRowIcon }}</mat-icon>\n </div>\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.detailButtonInRow\" (click)=\"onDetailIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.detailButtonInRowIcon }}</mat-icon>\n </div>\n </div>\n</mat-list-item>\n", styles: [".o-list-item{display:flex}.o-list-item .o-card-item{padding:8px 4px}.o-list-item .mat-mdc-list-item{width:100%}.o-list-item .mat-mdc-list-item.mdc-list-item--with-trailing-meta{height:auto}.o-list-item .mat-mdc-list-item .row-buttons-container .o-list-row-action{height:24px;text-align:center;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i5.MatListItemMeta, selector: "[matListItemMeta]" }], encapsulation: i0.ViewEncapsulation.None });
68
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: OListItemComponent, decorators: [{
69
69
  type: Component,
70
70
  args: [{ selector: 'o-list-item', encapsulation: ViewEncapsulation.None, host: {
71
71
  '[class.o-list-item]': 'true'
72
- }, template: "<mat-list-item #innerListItem>\n <div class=\"o-list-row-action o-list-item-selection-check\" *ngIf=\"_list && _list.selectable\">\n <mat-checkbox [checked]=\"isSelected\" (change)=\"onCheckboxChange()\" (click)=\"onCheckboxClicked($event)\"></mat-checkbox>\n </div>\n <ng-content select=\"[o-list-item-avatar], [matListAvatar], [matListIcon]\"> </ng-content>\n <div class=\"mat-mdc-list-item\">\n <ng-content select=\"[matLine]\"></ng-content>\n </div>\n <!--matListItemMeta to put content into the meta section of a list item-->\n <div matListItemMeta>\n <ng-content select=\"o-list-item-card-image,o-list-item-card\"></ng-content>\n </div>\n <ng-content select=\"o-list-item-text,o-list-item-avatar, [o-list-item]\"></ng-content>\n\n <div fxLayout=\"row\" class=\"row-buttons-container\">\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.editButtonInRow\" (click)=\"onEditIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.editButtonInRowIcon }}</mat-icon>\n </div>\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.detailButtonInRow\" (click)=\"onDetailIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.detailButtonInRowIcon }}</mat-icon>\n </div>\n </div>\n</mat-list-item>\n", styles: [".o-list-item{display:flex}.o-list-item .mat-mdc-list-item{width:100%}.o-list-item .mat-mdc-list-item .row-buttons-container .o-list-row-action{height:24px;text-align:center;cursor:pointer}\n"] }]
72
+ }, template: "<mat-list-item #innerListItem>\n <div class=\"o-list-row-action o-list-item-selection-check\" *ngIf=\"_list && _list.selectable\">\n <mat-checkbox [checked]=\"isSelected\" (change)=\"onCheckboxChange()\" (click)=\"onCheckboxClicked($event)\"></mat-checkbox>\n </div>\n <ng-content select=\"[o-list-item-avatar], [matListAvatar], [matListIcon]\"> </ng-content>\n <div class=\"mat-mdc-list-item\">\n <ng-content select=\"[matLine]\"></ng-content>\n </div>\n <!--matListItemMeta to put content into the meta section of a list item-->\n <div matListItemMeta>\n <ng-content select=\"o-list-item-card-image,o-list-item-card\"></ng-content>\n </div>\n <ng-content select=\"o-list-item-text,o-list-item-avatar, [o-list-item]\"></ng-content>\n\n <div fxLayout=\"row\" class=\"row-buttons-container\">\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.editButtonInRow\" (click)=\"onEditIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.editButtonInRowIcon }}</mat-icon>\n </div>\n <div class=\"o-list-row-action o-list-item-icon\" *ngIf=\"_list && _list.detailButtonInRow\" (click)=\"onDetailIconClicked($event)\">\n <mat-icon class=\"material-icons\">{{ _list.detailButtonInRowIcon }}</mat-icon>\n </div>\n </div>\n</mat-list-item>\n", styles: [".o-list-item{display:flex}.o-list-item .o-card-item{padding:8px 4px}.o-list-item .mat-mdc-list-item{width:100%}.o-list-item .mat-mdc-list-item.mdc-list-item--with-trailing-meta{height:auto}.o-list-item .mat-mdc-list-item .row-buttons-container .o-list-row-action{height:24px;text-align:center;cursor:pointer}\n"] }]
73
73
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i6.OListComponent, decorators: [{
74
74
  type: Optional
75
75
  }, {