otimus-library 0.1.27 → 0.1.30

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.
@@ -144,7 +144,7 @@ export class OcAutocompleteComponent {
144
144
  this.filteredData = this.ocData;
145
145
  }
146
146
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: OcAutocompleteComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
147
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: OcAutocompleteComponent, isStandalone: true, selector: "oc-autocomplete", inputs: { ocPlaceholder: "ocPlaceholder", ocError: "ocError", ocSize: "ocSize", ocData: "ocData", ocValue: "ocValue", ocClearOnChange: "ocClearOnChange", ocWidth: "ocWidth", ocMinWidth: "ocMinWidth", ocMaxWidth: "ocMaxWidth", ocRequired: "ocRequired", ocMaxResults: "ocMaxResults", ocAllowNotListedValue: "ocAllowNotListedValue" }, outputs: { ocValueChange: "ocValueChange", ocChange: "ocChange" }, host: { properties: { "style.width": "this.computedWidth", "style.min-width": "this.computedMinWidth", "style.max-width": "this.computedMaxWidth" } }, queries: [{ propertyName: "ocPrefix", first: true, predicate: ["ocPrefix"], descendants: true }, { propertyName: "ocSuffix", first: true, predicate: ["ocSuffix"], descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "options", first: true, predicate: ["options"], descendants: true }, { propertyName: "outerDiv", first: true, predicate: ["outerDiv"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError,\r\n prefix: hasPrefix,\r\n suffix: hasSuffix\r\n }\"\r\n >\r\n <ng-content></ng-content>\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}\r\n @if(ocRequired) {\r\n <span class=\"oc color error\">*</span>\r\n }\r\n </label>\r\n <ng-content select=\"ocPrefix\"></ng-content>\r\n <ng-content select=\"ocSuffix\"></ng-content>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n Nenhuma op\u00E7\u00E3o dispon\u00EDvel\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value; let i = $index) {\r\n @if(!ocMaxResults || i < ocMaxResults) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n @if(ocMaxResults && filteredData.length > ocMaxResults) {\r\n <li class=\"no-options\">\r\n Digite um valor para mais resultados\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}input.small input,input.small textarea,input.small select{padding:.3rem .7rem;border-radius:.5rem}input.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}input.small.prefix label{padding:.45rem 2.5rem}input.small.suffix .material-symbols-outlined{padding:.35rem .7rem}input.small.suffix label{padding:.45rem .7rem}input.small label{padding:.5rem .7rem}input.small input:focus~label,input.small input:not(:placeholder-shown)~label,input.small textarea:focus~label,input.small textarea:not(:placeholder-shown)~label,input.small select:focus~label,input.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}input.large input,input.large textarea,input.large select{padding:1rem;border-radius:1rem}input.large label,input.large.prefix .material-symbols-outlined{padding:1rem .7rem}input.large.prefix input{padding-left:2.5rem}input.large.prefix label{padding:1.1rem 2.5rem}input.large.suffix .material-symbols-outlined{padding:.9rem .7rem}input.large.suffix input{padding-right:2.5rem}input.large.suffix label{padding:1.1rem .7rem}input.large input:focus~label,input.large input:not(:placeholder-shown)~label,input.large textarea:focus~label,input.large textarea:not(:placeholder-shown)~label,input.large select:focus~label,input.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;margin-block-start:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
147
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.11", type: OcAutocompleteComponent, isStandalone: true, selector: "oc-autocomplete", inputs: { ocPlaceholder: "ocPlaceholder", ocError: "ocError", ocSize: "ocSize", ocData: "ocData", ocValue: "ocValue", ocClearOnChange: "ocClearOnChange", ocWidth: "ocWidth", ocMinWidth: "ocMinWidth", ocMaxWidth: "ocMaxWidth", ocRequired: "ocRequired", ocMaxResults: "ocMaxResults", ocAllowNotListedValue: "ocAllowNotListedValue", ocNoAvailableOptionsText: "ocNoAvailableOptionsText", ocTypeForMoreResultsText: "ocTypeForMoreResultsText" }, outputs: { ocValueChange: "ocValueChange", ocChange: "ocChange" }, host: { properties: { "style.width": "this.computedWidth", "style.min-width": "this.computedMinWidth", "style.max-width": "this.computedMaxWidth" } }, queries: [{ propertyName: "ocPrefix", first: true, predicate: ["ocPrefix"], descendants: true }, { propertyName: "ocSuffix", first: true, predicate: ["ocSuffix"], descendants: true }], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "options", first: true, predicate: ["options"], descendants: true }, { propertyName: "outerDiv", first: true, predicate: ["outerDiv"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError,\r\n prefix: hasPrefix,\r\n suffix: hasSuffix\r\n }\"\r\n >\r\n <ng-content></ng-content>\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}\r\n @if(ocRequired) {\r\n <span class=\"oc color error\">*</span>\r\n }\r\n </label>\r\n <ng-content select=\"ocPrefix\"></ng-content>\r\n <ng-content select=\"ocSuffix\"></ng-content>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n {{ ocNoAvailableOptionsText || 'Nenhuma op\u00E7\u00E3o dispon\u00EDvel'}}\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value; let i = $index) {\r\n @if(!ocMaxResults || i < ocMaxResults) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n @if(ocMaxResults && filteredData.length > ocMaxResults) {\r\n <li class=\"no-options\">\r\n {{ocTypeForMoreResultsText || 'Digite um valor para mais resultados'}}\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}input.small input,input.small textarea,input.small select{padding:.3rem .7rem;border-radius:.5rem}input.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}input.small.prefix label{padding:.45rem 2.5rem}input.small.suffix .material-symbols-outlined{padding:.35rem .7rem}input.small.suffix label{padding:.45rem .7rem}input.small label{padding:.5rem .7rem}input.small input:focus~label,input.small input:not(:placeholder-shown)~label,input.small textarea:focus~label,input.small textarea:not(:placeholder-shown)~label,input.small select:focus~label,input.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}input.large input,input.large textarea,input.large select{padding:1rem;border-radius:1rem}input.large label,input.large.prefix .material-symbols-outlined{padding:1rem .7rem}input.large.prefix input{padding-left:2.5rem}input.large.prefix label{padding:1.1rem 2.5rem}input.large.suffix .material-symbols-outlined{padding:.9rem .7rem}input.large.suffix input{padding-right:2.5rem}input.large.suffix label{padding:1.1rem .7rem}input.large input:focus~label,input.large input:not(:placeholder-shown)~label,input.large textarea:focus~label,input.large textarea:not(:placeholder-shown)~label,input.large select:focus~label,input.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;margin-block-start:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); }
148
148
  }
149
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImport: i0, type: OcAutocompleteComponent, decorators: [{
150
150
  type: Component,
@@ -152,7 +152,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
152
152
  '[style.width]': 'computedWidth',
153
153
  '[style.min-width]': 'computedMinWidth',
154
154
  '[style.max-width]': 'computedMaxWidth'
155
- }, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError,\r\n prefix: hasPrefix,\r\n suffix: hasSuffix\r\n }\"\r\n >\r\n <ng-content></ng-content>\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}\r\n @if(ocRequired) {\r\n <span class=\"oc color error\">*</span>\r\n }\r\n </label>\r\n <ng-content select=\"ocPrefix\"></ng-content>\r\n <ng-content select=\"ocSuffix\"></ng-content>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n Nenhuma op\u00E7\u00E3o dispon\u00EDvel\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value; let i = $index) {\r\n @if(!ocMaxResults || i < ocMaxResults) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n @if(ocMaxResults && filteredData.length > ocMaxResults) {\r\n <li class=\"no-options\">\r\n Digite um valor para mais resultados\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}input.small input,input.small textarea,input.small select{padding:.3rem .7rem;border-radius:.5rem}input.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}input.small.prefix label{padding:.45rem 2.5rem}input.small.suffix .material-symbols-outlined{padding:.35rem .7rem}input.small.suffix label{padding:.45rem .7rem}input.small label{padding:.5rem .7rem}input.small input:focus~label,input.small input:not(:placeholder-shown)~label,input.small textarea:focus~label,input.small textarea:not(:placeholder-shown)~label,input.small select:focus~label,input.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}input.large input,input.large textarea,input.large select{padding:1rem;border-radius:1rem}input.large label,input.large.prefix .material-symbols-outlined{padding:1rem .7rem}input.large.prefix input{padding-left:2.5rem}input.large.prefix label{padding:1.1rem 2.5rem}input.large.suffix .material-symbols-outlined{padding:.9rem .7rem}input.large.suffix input{padding-right:2.5rem}input.large.suffix label{padding:1.1rem .7rem}input.large input:focus~label,input.large input:not(:placeholder-shown)~label,input.large textarea:focus~label,input.large textarea:not(:placeholder-shown)~label,input.large select:focus~label,input.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;margin-block-start:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"] }]
155
+ }, template: "<div class=\"oc-input-box\" [ngClass]=\"{\r\n 'small': ocSize === 'small',\r\n 'large': ocSize === 'large',\r\n error: !!ocError,\r\n prefix: hasPrefix,\r\n suffix: hasSuffix\r\n }\"\r\n >\r\n <ng-content></ng-content>\r\n <input #input (click)=\"toggleOptions()\" type=\"text\" (input)=\"filterData(ocValue)\" [(ngModel)]=\"ocValue\" (ngModelChange)=\"ocValue = $event; ocValueChange.emit($event)\">\r\n <label>{{ocPlaceholder}}\r\n @if(ocRequired) {\r\n <span class=\"oc color error\">*</span>\r\n }\r\n </label>\r\n <ng-content select=\"ocPrefix\"></ng-content>\r\n <ng-content select=\"ocSuffix\"></ng-content>\r\n</div>\r\n\r\n<div \r\n class=\"oc-options-div\"\r\n>\r\n @if(isOptionsShown){\r\n <ul #options class=\"oc-options\">\r\n @if(!filteredData.length){\r\n <li class=\"no-options\">\r\n {{ ocNoAvailableOptionsText || 'Nenhuma op\u00E7\u00E3o dispon\u00EDvel'}}\r\n </li>\r\n }@else {\r\n @for(data of filteredData; track data.value; let i = $index) {\r\n @if(!ocMaxResults || i < ocMaxResults) {\r\n <li>\r\n <button type=\"button\" (click)=\"selectValue(data.value)\">\r\n {{data.name}}\r\n </button>\r\n </li>\r\n }\r\n }\r\n @if(ocMaxResults && filteredData.length > ocMaxResults) {\r\n <li class=\"no-options\">\r\n {{ocTypeForMoreResultsText || 'Digite um valor para mais resultados'}}\r\n </li>\r\n }\r\n }\r\n </ul>\r\n }\r\n</div>\r\n", styles: [".oc-input-box.prefix .material-symbols-outlined{position:absolute;left:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box.suffix .material-symbols-outlined{position:absolute;right:0;font-size:1.5rem;-webkit-user-select:none;user-select:none}.oc-input-box{position:relative;margin-top:.5rem}.oc-input-box select *{background-color:#f8f9ff}.oc-input-box label{position:absolute;left:0;top:0;padding:.5rem .7rem;font-size:.85rem;color:#8f9596;pointer-events:none;transition:.3s ease;border-radius:.5rem;white-space:nowrap}.oc-input-box.prefix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.prefix input{padding-left:2.5rem}.oc-input-box.prefix label{padding:.7rem 2.5rem}.oc-input-box.suffix .material-symbols-outlined{padding:.5rem .7rem}.oc-input-box.suffix input{padding-right:2.5rem}.oc-input-box.suffix label{padding:.7rem}.oc-input-box input,.oc-input-box textarea,.oc-input-box select{font-size:1rem;border-radius:.7rem;background-color:#f8f9ff;border:1px solid #d1d5db;outline:none;padding:.6rem .9rem;width:100%;transition:.3s ease;color:#7e8485;font-weight:500}.oc-input-box input:focus,.oc-input-box textarea:focus,.oc-input-box select:focus{border:1px solid #00dda3;box-shadow:0 4px 3.2px #00dda314}.oc-input-box input:not(:placeholder-shown)~label,.oc-input-box input:focus~label,.oc-input-box textarea:not(:placeholder-shown)~label,.oc-input-box textarea:focus~label,.oc-input-box select:valid~label,.oc-input-box select:focus~label{transform:translateY(-.855rem) translate(.6rem);color:#1e0832;background-color:#f8f9ff;padding:1px 7px;font-weight:500}.error input,.error textarea,.error select{border:1px solid #ed3a3a;box-shadow:0 4px 6.1px #a1000014}.error small,.error label{color:#ed3a3a!important;font-weight:600}input.small input,input.small textarea,input.small select{padding:.3rem .7rem;border-radius:.5rem}input.small.prefix .material-symbols-outlined{padding:.35rem .7rem;font-size:1.25rem}input.small.prefix label{padding:.45rem 2.5rem}input.small.suffix .material-symbols-outlined{padding:.35rem .7rem}input.small.suffix label{padding:.45rem .7rem}input.small label{padding:.5rem .7rem}input.small input:focus~label,input.small input:not(:placeholder-shown)~label,input.small textarea:focus~label,input.small textarea:not(:placeholder-shown)~label,input.small select:focus~label,input.small select:valid~label{transform:translateY(-.99rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}input.large input,input.large textarea,input.large select{padding:1rem;border-radius:1rem}input.large label,input.large.prefix .material-symbols-outlined{padding:1rem .7rem}input.large.prefix input{padding-left:2.5rem}input.large.prefix label{padding:1.1rem 2.5rem}input.large.suffix .material-symbols-outlined{padding:.9rem .7rem}input.large.suffix input{padding-right:2.5rem}input.large.suffix label{padding:1.1rem .7rem}input.large input:focus~label,input.large input:not(:placeholder-shown)~label,input.large textarea:focus~label,input.large textarea:not(:placeholder-shown)~label,input.large select:focus~label,input.large select:valid~label{transform:translateY(-.77rem) translate(.6rem);color:#7e8485;background-color:#fff;padding:1px 7px;font-weight:500}.oc-input-box{position:relative}.oc-options-div{position:absolute;min-width:20vw}.oc-options{display:flex;flex-direction:column;list-style:none;max-height:40vh;background-color:#f8f9ff;border:2px solid #ffffff;box-shadow:0 4px 8.7px #00000021;padding:0;margin-block-start:0;border-radius:.5rem;overflow:hidden;width:100%;position:absolute;top:50%;overflow-y:auto;z-index:15}.oc-options>li{padding:0;margin:0}.oc-options>li button{width:100%;text-align:left;padding:.6rem;border:none;background-color:#f8f9ff;cursor:pointer}.oc-options>li button:hover{filter:brightness(.9)}.no-options{padding:.6rem!important;color:#8f9596}\n"] }]
156
156
  }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }], propDecorators: { input: [{
157
157
  type: ViewChild,
158
158
  args: ['input']
@@ -192,6 +192,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
192
192
  type: Input
193
193
  }], ocAllowNotListedValue: [{
194
194
  type: Input
195
+ }], ocNoAvailableOptionsText: [{
196
+ type: Input
197
+ }], ocTypeForMoreResultsText: [{
198
+ type: Input
195
199
  }], ocValueChange: [{
196
200
  type: Output
197
201
  }], ocChange: [{
@@ -206,4 +210,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.11", ngImpo
206
210
  type: HostBinding,
207
211
  args: ['style.max-width']
208
212
  }] } });
209
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXNDLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBNEIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFNLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWM3QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVV0RCxXQUFNLEdBQWlDLFFBQVEsQ0FBQTtRQUMvQyxXQUFNLEdBQXlCLEVBQUUsQ0FBQTtRQUNqQyxZQUFPLEdBQVEsRUFBRSxDQUFBO1FBQ2pCLG9CQUFlLEdBQVksS0FBSyxDQUFBO1FBSWhDLGVBQVUsR0FBWSxLQUFLLENBQUE7UUFFM0IsMEJBQXFCLEdBQVksS0FBSyxDQUFBO1FBRXJDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQTtRQUMxQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUE7UUFFdEQsY0FBUyxHQUFZLEtBQUssQ0FBQTtRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFB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LGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxpQkFBaUI7Z0JBTTFCLGdCQUFnQjtzQkFEbkIsV0FBVzt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBIb3N0QmluZGluZywgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9jQXV0b0NvbXBsZXRlVHlwZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvb2MtYXV0b2NvbXBsZXRlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ29jLWF1dG9jb21wbGV0ZScsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZV0sXHJcbiAgaG9zdDoge1xyXG4gICAgJ1tzdHlsZS53aWR0aF0nOiAnY29tcHV0ZWRXaWR0aCcsXHJcbiAgICAnW3N0eWxlLm1pbi13aWR0aF0nOiAnY29tcHV0ZWRNaW5XaWR0aCcsXHJcbiAgICAnW3N0eWxlLm1heC13aWR0aF0nOiAnY29tcHV0ZWRNYXhXaWR0aCdcclxuICB9LFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9vYy1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9vYy1hdXRvY29tcGxldGUuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBPY0F1dG9jb21wbGV0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxyXG4gIFxyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0JykgaW5wdXQhOiBFbGVtZW50UmVmXHJcbiAgQFZpZXdDaGlsZCgnb3B0aW9ucycpIG9wdGlvbnMhOiBFbGVtZW50UmVmXHJcbiAgQFZpZXdDaGlsZCgnb3V0ZXJEaXYnKSBvdXRlckRpdiE6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+XHJcblxyXG4gIEBDb250ZW50Q2hpbGQoJ29jUHJlZml4Jykgb2NQcmVmaXg6IGFueVxyXG4gIEBDb250ZW50Q2hpbGQoJ29jU3VmZml4Jykgb2NTdWZmaXg6IGFueVxyXG4gIEBJbnB1dCgpIG9jUGxhY2Vob2xkZXI/OiBzdHJpbmdcclxuICBASW5wdXQoKSBvY0Vycm9yPzogc3RyaW5nXHJcbiAgQElucHV0KCkgb2NTaXplOiAnc21hbGwnIHwgJ2xhcmdlJyB8ICdtZWRpdW0nID0gJ21lZGl1bSdcclxuICBASW5wdXQoKSBvY0RhdGE6IE9jQXV0b0NvbXBsZXRlVHlwZVtdID0gW11cclxuICBASW5wdXQoKSBvY1ZhbHVlOiBhbnkgPSAnJ1xyXG4gIEBJbnB1dCgpIG9jQ2xlYXJPbkNoYW5nZTogYm9vbGVhbiA9IGZhbHNlIFxyXG4gIEBJbnB1dCgpIG9jV2lkdGg/OiBzdHJpbmdcclxuICBASW5wdXQoKSBvY01pbldpZHRoPzogc3RyaW5nXHJcbiAgQElucHV0KCkgb2NNYXhXaWR0aD86IHN0cmluZ1xyXG4gIEBJbnB1dCgpIG9jUmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIEBJbnB1dCgpIG9jTWF4UmVzdWx0cz86IG51bWJlclxyXG4gIEBJbnB1dCgpIG9jQWxsb3dOb3RMaXN0ZWRWYWx1ZTogYm9vbGVhbiA9IGZhbHNlXHJcblxyXG4gIEBPdXRwdXQoKSBvY1ZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KClcclxuICBAT3V0cHV0KCkgb2NDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KClcclxuXHJcbiAgaGFzU3VmZml4OiBib29sZWFuID0gZmFsc2VcclxuICBoYXNQcmVmaXg6IGJvb2xlYW4gPSBmYWxzZVxyXG5cclxuICBpc09wdGlvbnNTaG93bjogYm9vbGVhbiA9IGZhbHNlXHJcbiAgZmlsdGVyZWREYXRhOiBPY0F1dG9Db21wbGV0ZVR5cGVbXSA9IFtdXHJcbiAgc2VsZWN0ZWRWYWx1ZTogT2NBdXRvQ29tcGxldGVUeXBlID0ge1xyXG4gICAgbmFtZTogJycsXHJcbiAgICB2YWx1ZTogbnVsbFxyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS53aWR0aCcpXHJcbiAgZ2V0IGNvbXB1dGVkV2lkdGggKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub2NXaWR0aCA/IHRoaXMub2NXaWR0aCA6IG51bGxcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnc3R5bGUubWluLXdpZHRoJylcclxuICBnZXQgY29tcHV0ZWRNaW5XaWR0aCAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vY01pbldpZHRoIHx8ICcwJ1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5tYXgtd2lkdGgnKVxyXG4gIGdldCBjb21wdXRlZE1heFdpZHRoICgpIHtcclxuICAgIHJldHVybiB0aGlzLm9jTWF4V2lkdGggfHwgJzEwMCUnXHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLm9jUHJlZml4KSB0aGlzLmhhc1ByZWZpeCA9IHRydWVcclxuICAgIGlmKHRoaXMub2NTdWZmaXgpIHRoaXMuaGFzU3VmZml4ID0gdHJ1ZVxyXG4gICAgdGhpcy5mb3JtYXRPY1ZhbHVlVHlwZSgpXHJcbiAgICB0aGlzLmxvYWRPcHRpb25zKClcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIGlmKHRoaXMub2NQcmVmaXgpIHRoaXMuaGFzUHJlZml4ID0gdHJ1ZVxyXG4gICAgaWYodGhpcy5vY1N1ZmZpeCkgdGhpcy5oYXNTdWZmaXggPSB0cnVlXHJcbiAgICB0aGlzLmZvcm1hdE9jVmFsdWVUeXBlKClcclxuICAgIHRoaXMubG9hZE9wdGlvbnMoKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5vY1ByZWZpeCkgdGhpcy5oYXNQcmVmaXggPSB0cnVlXHJcbiAgICBpZih0aGlzLm9jU3VmZml4KSB0aGlzLmhhc1N1ZmZpeCA9IHRydWVcclxuICB9XHJcblxyXG4gIGZvcm1hdE9jVmFsdWVUeXBlKCkge1xyXG4gICAgaWYodGhpcy5vY1ZhbHVlKSByZXR1cm4gYCR7dGhpcy5vY1ZhbHVlfWBcclxuICAgIHJldHVybiBudWxsXHJcbiAgfVxyXG5cclxuICBsb2FkT3B0aW9ucygpIHtcclxuICAgIHRoaXMuZm9ybWF0T2NWYWx1ZVR5cGUoKVxyXG4gICAgc2V0VGltZW91dCgoKSA9PntcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLm9jRGF0YVxyXG4gICAgICBjb25zdCBpbnB1dEJveCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgIGNvbnN0IGZvdW5kID0gdGhpcy5vY0RhdGEuZmluZChlbCA9PiBlbC52YWx1ZSA9PSB0aGlzLm9jVmFsdWUpXHJcbiAgICAgIGlmKGZvdW5kKXtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSBmb3VuZFxyXG4gICAgICAgIHRoaXMub2NWYWx1ZSA9IGZvdW5kLm5hbWVcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGlucHV0Qm94KSB7XHJcbiAgICAgICAgY29uc3QgaW5wdXRFbGVtZW50ID0gaW5wdXRCb3gucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcclxuICBcclxuICAgICAgICBpZiAoaW5wdXRFbGVtZW50KSB7XHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dEVsZW1lbnQsICdwbGFjZWhvbGRlcicsICcnKVxyXG4gICAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUoaW5wdXRFbGVtZW50LCAncmVxdWlyZWQnLCB0aGlzLm9jUmVxdWlyZWQudG9TdHJpbmcoKSlcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0sNTApXHJcbiAgfVxyXG5cclxuICBjbG9zZU9uQ2xpY2tPdXQoKSB7XHJcbiAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbignd2luZG93JywgJ2NsaWNrJywoZTpFdmVudCk9PntcclxuICAgICAgaWYodGhpcy5pbnB1dCAmJiB0aGlzLm9wdGlvbnMpe1xyXG4gICAgICAgIGlmKGUudGFyZ2V0ICE9PSB0aGlzLmlucHV0Lm5hdGl2ZUVsZW1lbnQgJiYgZS50YXJnZXQhPT10aGlzLm9wdGlvbnMubmF0aXZlRWxlbWVudCl7XHJcbiAgICAgICAgICB0aGlzLmlzT3B0aW9uc1Nob3duID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmluZEJ5VHlwaW5nKClcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBmaW5kQnlUeXBpbmcoKSB7XHJcbiAgICBpZighdGhpcy5vY1ZhbHVlLnRyaW0oKS5sZW5ndGgpe1xyXG4gICAgICB0aGlzLm9jQ2hhbmdlLmVtaXQobnVsbClcclxuICAgIH1cclxuICAgIGNvbnN0IGZvdW5kVmFsdWUgPSB0aGlzLm9jRGF0YS5maW5kKGRhdGEgPT4gZGF0YS5uYW1lLnRvTG93ZXJDYXNlKCkgPT0gdGhpcy5vY1ZhbHVlLnRvTG93ZXJDYXNlKCkpXHJcblxyXG4gICAgaWYoIWZvdW5kVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xyXG4gICAgICAgbmFtZTogJycsXHJcbiAgICAgICB2YWx1ZTogbnVsbFxyXG4gICAgICB9XHJcbiAgICAgIGlmKCF0aGlzLm9jQWxsb3dOb3RMaXN0ZWRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMub2NWYWx1ZSA9ICcnXHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLm9jRGF0YVxyXG4gICAgICByZXR1cm5cclxuICAgIH1cclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGZvdW5kVmFsdWVcclxuICB9XHJcblxyXG4gIGZpbHRlckRhdGEobmFtZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmlzT3B0aW9uc1Nob3duID0gdHJ1ZVxyXG4gICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLm9jRGF0YS5maWx0ZXIoZGF0YSA9PiBkYXRhLm5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhuYW1lLnRvTG93ZXJDYXNlKCkpKVxyXG4gIH1cclxuXHJcbiAgdG9nZ2xlT3B0aW9ucygpIHtcclxuICAgIHRoaXMuY2xvc2VPbkNsaWNrT3V0KClcclxuICAgIHRoaXMuaXNPcHRpb25zU2hvd24gPSAhdGhpcy5pc09wdGlvbnNTaG93blxyXG4gIH1cclxuXHJcbiAgc2VsZWN0VmFsdWUodmFsdWU6IHN0cmluZyB8IG51bWJlcikge1xyXG4gICAgY29uc3QgZm91bmRWYWx1ZSA9IHRoaXMub2NEYXRhLmZpbmQoKGRhdGEpID0+IGRhdGEudmFsdWUgPT0gdmFsdWUpXHJcbiAgICBcclxuICAgIGlmKCFmb3VuZFZhbHVlKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHtcclxuICAgICAgICBuYW1lOiAnJyxcclxuICAgICAgICB2YWx1ZTogbnVsbFxyXG4gICAgICB9XHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGZvdW5kVmFsdWVcclxuICAgIGlmKHRoaXMub2NDbGVhck9uQ2hhbmdlKXtcclxuICAgICAgdGhpcy5vY1ZhbHVlID0gJydcclxuICAgICAgdGhpcy5maWx0ZXJlZERhdGEgPSB0aGlzLm9jRGF0YVxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMub2NWYWx1ZSA9IGZvdW5kVmFsdWUubmFtZVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub2NDaGFuZ2UuZW1pdCh0aGlzLnNlbGVjdGVkVmFsdWUudmFsdWUpXHJcbiAgfVxyXG5cclxuICBjbGVhclZhbHVlKCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xyXG4gICAgICBuYW1lOiAnJyxcclxuICAgICAgdmFsdWU6IG51bGxcclxuICAgIH1cclxuICAgIHRoaXMub2NWYWx1ZSA9ICcnXHJcbiAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhXHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJvYy1pbnB1dC1ib3hcIiBbbmdDbGFzc109XCJ7XHJcbiAgJ3NtYWxsJzogb2NTaXplID09PSAnc21hbGwnLFxyXG4gICdsYXJnZSc6IG9jU2l6ZSA9PT0gJ2xhcmdlJyxcclxuICBlcnJvcjogISFvY0Vycm9yLFxyXG4gIHByZWZpeDogaGFzUHJlZml4LFxyXG4gIHN1ZmZpeDogaGFzU3VmZml4XHJcbiAgfVwiXHJcbiAgPlxyXG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8aW5wdXQgI2lucHV0IChjbGljayk9XCJ0b2dnbGVPcHRpb25zKClcIiB0eXBlPVwidGV4dFwiIChpbnB1dCk9XCJmaWx0ZXJEYXRhKG9jVmFsdWUpXCIgWyhuZ01vZGVsKV09XCJvY1ZhbHVlXCIgKG5nTW9kZWxDaGFuZ2UpPVwib2NWYWx1ZSA9ICRldmVudDsgb2NWYWx1ZUNoYW5nZS5lbWl0KCRldmVudClcIj5cclxuICA8bGFiZWw+e3tvY1BsYWNlaG9sZGVyfX1cclxuICAgIEBpZihvY1JlcXVpcmVkKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwib2MgY29sb3IgZXJyb3JcIj4qPC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvbGFiZWw+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2NQcmVmaXhcIj48L25nLWNvbnRlbnQ+XHJcbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwib2NTdWZmaXhcIj48L25nLWNvbnRlbnQ+XHJcbjwvZGl2PlxyXG5cclxuPGRpdiBcclxuICBjbGFzcz1cIm9jLW9wdGlvbnMtZGl2XCJcclxuPlxyXG4gIEBpZihpc09wdGlvbnNTaG93bil7XHJcbiAgICA8dWwgI29wdGlvbnMgY2xhc3M9XCJvYy1vcHRpb25zXCI+XHJcbiAgICAgIEBpZighZmlsdGVyZWREYXRhLmxlbmd0aCl7XHJcbiAgICAgICAgPGxpIGNsYXNzPVwibm8tb3B0aW9uc1wiPlxyXG4gICAgICAgICAgTmVuaHVtYSBvcMOnw6NvIGRpc3BvbsOtdmVsXHJcbiAgICAgICAgPC9saT5cclxuICAgICAgfUBlbHNlIHtcclxuICAgICAgICBAZm9yKGRhdGEgb2YgZmlsdGVyZWREYXRhOyB0cmFjayBkYXRhLnZhbHVlOyBsZXQgaSA9ICRpbmRleCkge1xyXG4gICAgICAgICAgQGlmKCFvY01heFJlc3VsdHMgfHwgaSA8IG9jTWF4UmVzdWx0cykge1xyXG4gICAgICAgICAgICA8bGk+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cInNlbGVjdFZhbHVlKGRhdGEudmFsdWUpXCI+XHJcbiAgICAgICAgICAgICAgICB7e2RhdGEubmFtZX19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBpZihvY01heFJlc3VsdHMgJiYgZmlsdGVyZWREYXRhLmxlbmd0aCA+IG9jTWF4UmVzdWx0cykge1xyXG4gICAgICAgICAgPGxpIGNsYXNzPVwibm8tb3B0aW9uc1wiPlxyXG4gICAgICAgICAgICBEaWdpdGUgdW0gdmFsb3IgcGFyYSBtYWlzIHJlc3VsdGFkb3NcclxuICAgICAgICAgIDwvbGk+XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICA8L3VsPlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
213
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL290aW11cy1saWJyYXJ5L3NyYy9saWIvY29tcG9uZW50cy9vYy1hdXRvY29tcGxldGUvb2MtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQXNDLFNBQVMsRUFBRSxZQUFZLEVBQWMsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBNEIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFNLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQWM3QyxNQUFNLE9BQU8sdUJBQXVCO0lBQ2xDLFlBQW9CLFFBQW1CLEVBQVUsRUFBYztRQUEzQyxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQVV0RCxXQUFNLEdBQWlDLFFBQVEsQ0FBQTtRQUMvQyxXQUFNLEdBQXlCLEVBQUUsQ0FBQTtRQUNqQyxZQUFPLEdBQVEsRUFBRSxDQUFBO1FBQ2pCLG9CQUFlLEdBQVksS0FBSyxDQUFBO1FBSWhDLGVBQVUsR0FBWSxLQUFLLENBQUE7UUFFM0IsMEJBQXFCLEdBQVksS0FBSyxDQUFBO1FBSXJDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQTtRQUMxQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWlCLENBQUE7UUFFdEQsY0FBUyxHQUFZLEtBQUssQ0FBQTtRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFB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QUFqQixNQUFNO2dCQWFILGFBQWE7c0JBRGhCLFdBQVc7dUJBQUMsYUFBYTtnQkFNdEIsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGlCQUFpQjtnQkFNMUIsZ0JBQWdCO3NCQURuQixXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFmdGVyQ29udGVudENoZWNrZWQsIEFmdGVyVmlld0luaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2NBdXRvQ29tcGxldGVUeXBlIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9vYy1hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnb2MtYXV0b2NvbXBsZXRlJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlXSxcclxuICBob3N0OiB7XHJcbiAgICAnW3N0eWxlLndpZHRoXSc6ICdjb21wdXRlZFdpZHRoJyxcclxuICAgICdbc3R5bGUubWluLXdpZHRoXSc6ICdjb21wdXRlZE1pbldpZHRoJyxcclxuICAgICdbc3R5bGUubWF4LXdpZHRoXSc6ICdjb21wdXRlZE1heFdpZHRoJ1xyXG4gIH0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL29jLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL29jLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIE9jQXV0b2NvbXBsZXRlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHt9XHJcbiAgXHJcbiAgQFZpZXdDaGlsZCgnaW5wdXQnKSBpbnB1dCE6IEVsZW1lbnRSZWZcclxuICBAVmlld0NoaWxkKCdvcHRpb25zJykgb3B0aW9ucyE6IEVsZW1lbnRSZWZcclxuICBAVmlld0NoaWxkKCdvdXRlckRpdicpIG91dGVyRGl2ITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD5cclxuXHJcbiAgQENvbnRlbnRDaGlsZCgnb2NQcmVmaXgnKSBvY1ByZWZpeDogYW55XHJcbiAgQENvbnRlbnRDaGlsZCgnb2NTdWZmaXgnKSBvY1N1ZmZpeDogYW55XHJcbiAgQElucHV0KCkgb2NQbGFjZWhvbGRlcj86IHN0cmluZ1xyXG4gIEBJbnB1dCgpIG9jRXJyb3I/OiBzdHJpbmdcclxuICBASW5wdXQoKSBvY1NpemU6ICdzbWFsbCcgfCAnbGFyZ2UnIHwgJ21lZGl1bScgPSAnbWVkaXVtJ1xyXG4gIEBJbnB1dCgpIG9jRGF0YTogT2NBdXRvQ29tcGxldGVUeXBlW10gPSBbXVxyXG4gIEBJbnB1dCgpIG9jVmFsdWU6IGFueSA9ICcnXHJcbiAgQElucHV0KCkgb2NDbGVhck9uQ2hhbmdlOiBib29sZWFuID0gZmFsc2UgXHJcbiAgQElucHV0KCkgb2NXaWR0aD86IHN0cmluZ1xyXG4gIEBJbnB1dCgpIG9jTWluV2lkdGg/OiBzdHJpbmdcclxuICBASW5wdXQoKSBvY01heFdpZHRoPzogc3RyaW5nXHJcbiAgQElucHV0KCkgb2NSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlXHJcbiAgQElucHV0KCkgb2NNYXhSZXN1bHRzPzogbnVtYmVyXHJcbiAgQElucHV0KCkgb2NBbGxvd05vdExpc3RlZFZhbHVlOiBib29sZWFuID0gZmFsc2VcclxuICBASW5wdXQoKSBvY05vQXZhaWxhYmxlT3B0aW9uc1RleHQ/OiBzdHJpbmdcclxuICBASW5wdXQoKSBvY1R5cGVGb3JNb3JlUmVzdWx0c1RleHQ/OiBzdHJpbmdcclxuXHJcbiAgQE91dHB1dCgpIG9jVmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKVxyXG4gIEBPdXRwdXQoKSBvY0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgbnVsbD4oKVxyXG5cclxuICBoYXNTdWZmaXg6IGJvb2xlYW4gPSBmYWxzZVxyXG4gIGhhc1ByZWZpeDogYm9vbGVhbiA9IGZhbHNlXHJcblxyXG4gIGlzT3B0aW9uc1Nob3duOiBib29sZWFuID0gZmFsc2VcclxuICBmaWx0ZXJlZERhdGE6IE9jQXV0b0NvbXBsZXRlVHlwZVtdID0gW11cclxuICBzZWxlY3RlZFZhbHVlOiBPY0F1dG9Db21wbGV0ZVR5cGUgPSB7XHJcbiAgICBuYW1lOiAnJyxcclxuICAgIHZhbHVlOiBudWxsXHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLndpZHRoJylcclxuICBnZXQgY29tcHV0ZWRXaWR0aCAoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5vY1dpZHRoID8gdGhpcy5vY1dpZHRoIDogbnVsbFxyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdzdHlsZS5taW4td2lkdGgnKVxyXG4gIGdldCBjb21wdXRlZE1pbldpZHRoICgpIHtcclxuICAgIHJldHVybiB0aGlzLm9jTWluV2lkdGggfHwgJzAnXHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aCcpXHJcbiAgZ2V0IGNvbXB1dGVkTWF4V2lkdGggKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub2NNYXhXaWR0aCB8fCAnMTAwJSdcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmKHRoaXMub2NQcmVmaXgpIHRoaXMuaGFzUHJlZml4ID0gdHJ1ZVxyXG4gICAgaWYodGhpcy5vY1N1ZmZpeCkgdGhpcy5oYXNTdWZmaXggPSB0cnVlXHJcbiAgICB0aGlzLmZvcm1hdE9jVmFsdWVUeXBlKClcclxuICAgIHRoaXMubG9hZE9wdGlvbnMoKVxyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgaWYodGhpcy5vY1ByZWZpeCkgdGhpcy5oYXNQcmVmaXggPSB0cnVlXHJcbiAgICBpZih0aGlzLm9jU3VmZml4KSB0aGlzLmhhc1N1ZmZpeCA9IHRydWVcclxuICAgIHRoaXMuZm9ybWF0T2NWYWx1ZVR5cGUoKVxyXG4gICAgdGhpcy5sb2FkT3B0aW9ucygpXHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLm9jUHJlZml4KSB0aGlzLmhhc1ByZWZpeCA9IHRydWVcclxuICAgIGlmKHRoaXMub2NTdWZmaXgpIHRoaXMuaGFzU3VmZml4ID0gdHJ1ZVxyXG4gIH1cclxuXHJcbiAgZm9ybWF0T2NWYWx1ZVR5cGUoKSB7XHJcbiAgICBpZih0aGlzLm9jVmFsdWUpIHJldHVybiBgJHt0aGlzLm9jVmFsdWV9YFxyXG4gICAgcmV0dXJuIG51bGxcclxuICB9XHJcblxyXG4gIGxvYWRPcHRpb25zKCkge1xyXG4gICAgdGhpcy5mb3JtYXRPY1ZhbHVlVHlwZSgpXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+e1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhXHJcbiAgICAgIGNvbnN0IGlucHV0Qm94ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgY29uc3QgZm91bmQgPSB0aGlzLm9jRGF0YS5maW5kKGVsID0+IGVsLnZhbHVlID09IHRoaXMub2NWYWx1ZSlcclxuICAgICAgaWYoZm91bmQpe1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IGZvdW5kXHJcbiAgICAgICAgdGhpcy5vY1ZhbHVlID0gZm91bmQubmFtZVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAoaW5wdXRCb3gpIHtcclxuICAgICAgICBjb25zdCBpbnB1dEVsZW1lbnQgPSBpbnB1dEJveC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xyXG4gIFxyXG4gICAgICAgIGlmIChpbnB1dEVsZW1lbnQpIHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKGlucHV0RWxlbWVudCwgJ3BsYWNlaG9sZGVyJywgJycpXHJcbiAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZShpbnB1dEVsZW1lbnQsICdyZXF1aXJlZCcsIHRoaXMub2NSZXF1aXJlZC50b1N0cmluZygpKVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSw1MClcclxuICB9XHJcblxyXG4gIGNsb3NlT25DbGlja091dCgpIHtcclxuICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAnY2xpY2snLChlOkV2ZW50KT0+e1xyXG4gICAgICBpZih0aGlzLmlucHV0ICYmIHRoaXMub3B0aW9ucyl7XHJcbiAgICAgICAgaWYoZS50YXJnZXQgIT09IHRoaXMuaW5wdXQubmF0aXZlRWxlbWVudCAmJiBlLnRhcmdldCE9PXRoaXMub3B0aW9ucy5uYXRpdmVFbGVtZW50KXtcclxuICAgICAgICAgIHRoaXMuaXNPcHRpb25zU2hvd24gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maW5kQnlUeXBpbmcoKVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGZpbmRCeVR5cGluZygpIHtcclxuICAgIGlmKCF0aGlzLm9jVmFsdWUudHJpbSgpLmxlbmd0aCl7XHJcbiAgICAgIHRoaXMub2NDaGFuZ2UuZW1pdChudWxsKVxyXG4gICAgfVxyXG4gICAgY29uc3QgZm91bmRWYWx1ZSA9IHRoaXMub2NEYXRhLmZpbmQoZGF0YSA9PiBkYXRhLm5hbWUudG9Mb3dlckNhc2UoKSA9PSB0aGlzLm9jVmFsdWUudG9Mb3dlckNhc2UoKSlcclxuXHJcbiAgICBpZighZm91bmRWYWx1ZSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB7XHJcbiAgICAgICBuYW1lOiAnJyxcclxuICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgIH1cclxuICAgICAgaWYoIXRoaXMub2NBbGxvd05vdExpc3RlZFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5vY1ZhbHVlID0gJydcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhXHJcbiAgICAgIHJldHVyblxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm91bmRWYWx1ZVxyXG4gIH1cclxuXHJcbiAgZmlsdGVyRGF0YShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuaXNPcHRpb25zU2hvd24gPSB0cnVlXHJcbiAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhLmZpbHRlcihkYXRhID0+IGRhdGEubmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKG5hbWUudG9Mb3dlckNhc2UoKSkpXHJcbiAgfVxyXG5cclxuICB0b2dnbGVPcHRpb25zKCkge1xyXG4gICAgdGhpcy5jbG9zZU9uQ2xpY2tPdXQoKVxyXG4gICAgdGhpcy5pc09wdGlvbnNTaG93biA9ICF0aGlzLmlzT3B0aW9uc1Nob3duXHJcbiAgfVxyXG5cclxuICBzZWxlY3RWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyKSB7XHJcbiAgICBjb25zdCBmb3VuZFZhbHVlID0gdGhpcy5vY0RhdGEuZmluZCgoZGF0YSkgPT4gZGF0YS52YWx1ZSA9PSB2YWx1ZSlcclxuICAgIFxyXG4gICAgaWYoIWZvdW5kVmFsdWUpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlID0ge1xyXG4gICAgICAgIG5hbWU6ICcnLFxyXG4gICAgICAgIHZhbHVlOiBudWxsXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFZhbHVlID0gZm91bmRWYWx1ZVxyXG4gICAgaWYodGhpcy5vY0NsZWFyT25DaGFuZ2Upe1xyXG4gICAgICB0aGlzLm9jVmFsdWUgPSAnJ1xyXG4gICAgICB0aGlzLmZpbHRlcmVkRGF0YSA9IHRoaXMub2NEYXRhXHJcbiAgICB9ZWxzZXtcclxuICAgICAgdGhpcy5vY1ZhbHVlID0gZm91bmRWYWx1ZS5uYW1lXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vY0NoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWRWYWx1ZS52YWx1ZSlcclxuICB9XHJcblxyXG4gIGNsZWFyVmFsdWUoKSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVmFsdWUgPSB7XHJcbiAgICAgIG5hbWU6ICcnLFxyXG4gICAgICB2YWx1ZTogbnVsbFxyXG4gICAgfVxyXG4gICAgdGhpcy5vY1ZhbHVlID0gJydcclxuICAgIHRoaXMuZmlsdGVyZWREYXRhID0gdGhpcy5vY0RhdGFcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm9jLWlucHV0LWJveFwiIFtuZ0NsYXNzXT1cIntcclxuICAnc21hbGwnOiBvY1NpemUgPT09ICdzbWFsbCcsXHJcbiAgJ2xhcmdlJzogb2NTaXplID09PSAnbGFyZ2UnLFxyXG4gIGVycm9yOiAhIW9jRXJyb3IsXHJcbiAgcHJlZml4OiBoYXNQcmVmaXgsXHJcbiAgc3VmZml4OiBoYXNTdWZmaXhcclxuICB9XCJcclxuICA+XHJcbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gIDxpbnB1dCAjaW5wdXQgKGNsaWNrKT1cInRvZ2dsZU9wdGlvbnMoKVwiIHR5cGU9XCJ0ZXh0XCIgKGlucHV0KT1cImZpbHRlckRhdGEob2NWYWx1ZSlcIiBbKG5nTW9kZWwpXT1cIm9jVmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvY1ZhbHVlID0gJGV2ZW50OyBvY1ZhbHVlQ2hhbmdlLmVtaXQoJGV2ZW50KVwiPlxyXG4gIDxsYWJlbD57e29jUGxhY2Vob2xkZXJ9fVxyXG4gICAgQGlmKG9jUmVxdWlyZWQpIHtcclxuICAgICAgPHNwYW4gY2xhc3M9XCJvYyBjb2xvciBlcnJvclwiPio8L3NwYW4+XHJcbiAgICB9XHJcbiAgPC9sYWJlbD5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJvY1ByZWZpeFwiPjwvbmctY29udGVudD5cclxuICA8bmctY29udGVudCBzZWxlY3Q9XCJvY1N1ZmZpeFwiPjwvbmctY29udGVudD5cclxuPC9kaXY+XHJcblxyXG48ZGl2IFxyXG4gIGNsYXNzPVwib2Mtb3B0aW9ucy1kaXZcIlxyXG4+XHJcbiAgQGlmKGlzT3B0aW9uc1Nob3duKXtcclxuICAgIDx1bCAjb3B0aW9ucyBjbGFzcz1cIm9jLW9wdGlvbnNcIj5cclxuICAgICAgQGlmKCFmaWx0ZXJlZERhdGEubGVuZ3RoKXtcclxuICAgICAgICA8bGkgY2xhc3M9XCJuby1vcHRpb25zXCI+XHJcbiAgICAgICAgICB7eyBvY05vQXZhaWxhYmxlT3B0aW9uc1RleHQgfHwgJ05lbmh1bWEgb3DDp8OjbyBkaXNwb27DrXZlbCd9fVxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIH1AZWxzZSB7XHJcbiAgICAgICAgQGZvcihkYXRhIG9mIGZpbHRlcmVkRGF0YTsgdHJhY2sgZGF0YS52YWx1ZTsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgIEBpZighb2NNYXhSZXN1bHRzIHx8IGkgPCBvY01heFJlc3VsdHMpIHtcclxuICAgICAgICAgICAgPGxpPlxyXG4gICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzZWxlY3RWYWx1ZShkYXRhLnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAge3tkYXRhLm5hbWV9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2xpPlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBAaWYob2NNYXhSZXN1bHRzICYmIGZpbHRlcmVkRGF0YS5sZW5ndGggPiBvY01heFJlc3VsdHMpIHtcclxuICAgICAgICAgIDxsaSBjbGFzcz1cIm5vLW9wdGlvbnNcIj5cclxuICAgICAgICAgICAge3tvY1R5cGVGb3JNb3JlUmVzdWx0c1RleHQgfHwgJ0RpZ2l0ZSB1bSB2YWxvciBwYXJhIG1haXMgcmVzdWx0YWRvcyd9fVxyXG4gICAgICAgICAgPC9saT5cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIDwvdWw+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19